グループと一致するはずの正規表現パターンを検索します。正規表現パターンに続き
はbasicly作品:Regexでのアンチマッチ
index\.php\?page=(?:.*)&tagID=([0-9]+)$
しかし.*
はTaggedObjectsと一致してはいけません。
アドバイスありがとうございます。
グループと一致するはずの正規表現パターンを検索します。正規表現パターンに続き
はbasicly作品:Regexでのアンチマッチ
index\.php\?page=(?:.*)&tagID=([0-9]+)$
しかし.*
はTaggedObjectsと一致してはいけません。
アドバイスありがとうございます。
(?:.*)
は不要です。何もグループ化していないので、.*
はまったく同じ意味です。しかし、それはあなたの質問に対する答えではありません。 が別の定義済みの文字列(TaggedObjects
言う)、あなたの例では
(?:(?!TaggedObjects).)*
を使用するが含まれていない、
index\.php\?page=(?:(?!TaggedObjects).)*&tagID=([0-9]+)$
が
index.php?page=blahblah&tagID=1234
にマッチする任意の文字列にマッチさせるために
一致しません
index.php?page=blahTaggedObjectsblah&tagID=1234
あなたは
index\.php\?page=(?!TaggedObjects&tagID=([0-9]+)$).*&tagID=([0-9]+)$
あなたの最初のポイントに応じて '(?!TaggedObjects)。*'になることがあります。 – SilentGhost
@SilentGhost:いいえ、繰り返しはグループの外にあります(後に続くすべての位置で否定的な先読みを適用するため)。 '(?:(?! TaggedObjects)。*)'の代わりに '(?!。* TaggedObjects)。*'があります。しかし、。 –
私は否定的な先読み(?!)をパッシブグループ(?:)の中に置くことはしません。なぜなら、否定的な先取りはとにかく捕らえられないからです。なぜあなたは1つの "。"受動的なグループの内部?何故なの 。*? – Jaskirat
を使用し、その後、その試合を許可するだけ正確な文字列TaggedObjects
を除外したいならば、これを試してみてください。文字列に 'TaggedObjects'の出現が含まれていると一致すると失敗したとします。
index\.php\?page=(?!.*TaggedObjects).*&tagID=([0-9]+)$
TaggedObjects?それは一致してはならない文字列ですか? – Jaskirat
誰かが先読みしていますか? – delnan