(?:\/(\w+?=\/)\/(\w+))*
グループ内から後方参照を取得する方法はありますか? 上記の私の式では、非参照 (?:) によってグループ全体が後方参照をキャプチャできなくなりますか?
たとえば、/hello/how/are/you.../today と一致させようとして、「/」の間のすべての値をキャプチャします。
(?:\/(\w+?=\/)\/(\w+))*
グループ内から後方参照を取得する方法はありますか? 上記の私の式では、非参照 (?:) によってグループ全体が後方参照をキャプチャできなくなりますか?
たとえば、/hello/how/are/you.../today と一致させようとして、「/」の間のすべての値をキャプチャします。
グループ内から後方参照を取得する方法はありますか?
はい。グループは階層で解釈されません。たとえば(a(b))
、1つと2つの2つのグループがあり、これらは(逆に)参照できます。参照に関しては、に等しい(a)(b)
。参照の順序は、正規表現パターンのグループの順序(グループの開始によって決定される)によって単純に決定されます。あるグループが別のグループの一部であるという事実は、この事実を変更しません。
上記の私の表現では、参照なし(?:)は、グループ全体が後方参照をキャプチャするのを防ぎますか?
いいえ。非キャプチャグループとしてマークされたグループが参照をキャプチャ(逆)するのを防ぐだけです。ネストされたグループは影響を受けず、非キャプチャグループとしてマークされていない限りキャプチャされます。