次の正規表現と件名のテキストを考えると、否定先読みが名前付きキャプチャ グループの最後の文字にのみ適用されるのはなぜURL
ですか?
// Regex
(?<URL>(?<Protocol>\w+):\/\/(?<Domain>[\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*)(?!'|"|(</a))
// Subject text
<p><a href="http://example.com">http://example.com</a> and http://example.com</p>
この正規表現には、タグ(?!"|(</a))
内の URL を一致させないようにする否定的な先読みがあります。<a>
これは、URL の後に引用符 ('
または"
) または終了</a
タグが続くかどうかを確認することによって行われます。
私は次の結果を得ています
http://example.co
http://example.co
http://example.com
最後の文字だけでなく、キャプチャ グループ全体に否定先読みが適用されることを期待していました。これは可能ですか?私は何を間違っていますか?http://example.com
キャプチャされるの最後のインスタンスのみに一致することを期待していました。