申し訳ありませんが、私はtutorialsを読んで、私の頭をあまりにもぼやけて今はっきりと見ることができません。Regex - 繰り返しグループをキャプチャする
私は、関数シグネチャからパラメータと型情報を取得しようとしています。したがって、このようなシグネチャ与えられた:
function(/*string*/a,b,c)
私はこのような部品を取得したい:
type: string
param:a
param:b
param:c
をこれもOKです:
type: string
param:a
type: null (or whitespace)
param:b
type: null (or whitespace)
param:c
だから私はこの正規表現これを思い付きましたキャプチャを繰り返すという間違いを繰り返しています(明示的なキャプチャをオンにしました)。
function\(((\/\*(?<type>[a-zA-Z]+)\*\/)?(?<param>[0-9a-zA-Z_$]+),?)*\)
問題は、私は間違いを訂正できません。 。。!:(、一致/全機能を検証
まず、あなたはすべてのデータを取得するために2つのステップを必要とするだろう一般
あなたはどの言語を使用していますか?これが.Netパターンなら、あなたは運がいいです。それ以外の場合は、おそらく単一のステップでは不可能です。 – Kobi
私は.Netを使わなくてもそれを解決したいと考えていましたが、ええ、私は結局.Netを使用しています。また、Capturesコレクションを見てきましたが、キャプチャをグループに関連付ける信頼性の高い方法はありません(または何かを見落としていますか?)。 – Mrchief
投稿された回答を参照してください。 'Match.Captures'は簡単に見つけられますが、あまり役に立ちません。通常は' Group.Captures'が必要です(私はもちろんこれを推測しています)。 – Kobi