web-dev-qa-db-ja.com

正規表現で複数の単語を一致させる方法

単純な正規表現で、書き方がわかりません。

正規表現は、文字列が3つの単語すべてに一致することを確認する必要があります。 3の-​​anyに一致させる方法がわかります。

/advancedbrain|com_ixxocart|p\=completed/

ただし、文字列にall 3語が含まれていることを確認する必要があります。

ここに言葉があります

  1. advancebrain
  2. com_ixxocart
  3. p =完了
14
UpHelix

使用 先読みアサーション

^(?=.*advancebrain)(?=.*com_ixxochart)(?=.*p=completed)

3つの用語がすべて存在する場合に一致します。

これを回避する必要がある場合は、検索語の周囲に\b作業境界を追加して、他の単語(advancebraindeathなど)の部分文字列ではなく完全な単語として一致するようにすることができます。

^(?=.*\badvancebrain\b)(?=.*\bcom_ixxochart\b)(?=.*\bp=completed\b)
16
Tim Pietzcker
^(?=.*?p=completed)(?=.*?advancebrain)(?=.*?com_ixxocart).*$

あまりにも長いテストと精製に費やした= /まあ..それでも私の答えを投稿します

先読みを使用する:

(?=.*\badvancebrain)(?=.*\bcom_ixxocart)(?=.*\bp=completed)

順序は関係ありません。 3つすべてが必要です。

1
Tom