私はいくつかの場所で使用したいパターンを持っていますが、パターンの内側にアクセスしたいと思っています。これを行う方法はありますか?私はそうのような周囲の\s+
を引き出すことなく、正規表現が成功したときに指定したグループisa
でマッチした撮影した文字列へのアクセス権を持っているしたいと思います正規表現サブルーチンでキャプチャグループにアクセスするには?
(?(DEFINE)
(?<_isa_> \s+ (?<isa> is \s+ a) \s+)
)
this (?&_isa_) (?<test>test)
:この簡素化例で
:
(?(DEFINE)
(?<_isa_> is \s+ a)
)
this \s+ (?<isa>(?&_isa_)) \s+ (?<test>test)
WHI、これは基本的に私は前部分マッチ、部分マッチとポスト部分マッチを指定するために、私は私の実際の正規表現でこれを行うにしたいすべての時間を持っていることを意味し、そのためchは私が望むものではありません。
DEFINEブロック内のキャプチャグループはそのブロック内でのみ「可視」になり、パターンからはアクセスできません。 –
あなたのツール/言語がそれを公開している場合は、コールアウトメカニズムで何かをハッキングするかもしれませんが、失敗したブランチからの結果も得られます。 –