私が存在している方ブーストモバイルやブースト・モバイルのいずれかの値を取得するために発現させるための正規表現を構築しようとしています。PHP正規表現ディスプレイABCまたはabcのどちらかのxyz形式
お願いします。 NFAの正規表現で
私が存在している方ブーストモバイルやブースト・モバイルのいずれかの値を取得するために発現させるための正規表現を構築しようとしています。PHP正規表現ディスプレイABCまたはabcのどちらかのxyz形式
お願いします。 NFAの正規表現で
は、非アンカー交代グループでは、マッチした最初の分岐は、グループの処理を停止し、右側にさらに配置された他の支店は、文字列に対してチェックされていません。それについてはAlternation with The Vertical Bar or Pipe Symbolで詳しく読むことができます。 regex demo
を参照してください/\bBoost(?:\s*Mobile)?\b/i
^^ ^^
:
ので、値を交換してパターンを簡略化します。ただし
/\b(Boost \s*Mobile|Boost)\b/i
使用することができ、ここでは最も効果的な方法は、オプションのグループを使用しています
i
大文字小文字を区別しない修飾子は、全体の正規表現で設定されています。パターンの最初と最後でオンとオフを切り替える必要はありません。また、\W*
は空の文字列を一致させることができますので、\b
が動作する際に単語境界を確認するあなたの方法は、ここで失敗することがあります。
パターンは詳細:
\b
- リテラルストリング(?:\s*Mobile)?
- - 0 -
\s*
の1つのまたは0の配列に一致するオプションのグループのワード境界Boost
をリード+空白Mobile
- リテラルストリング\b
- ワード境界にありがとうございました!両方のソリューションが機能しました! – user6622569
を末尾のための事項 'ブーストの\ B'が最初に一致します。 '\ Wは*(?(I)(* \はのモバイル\ bをブースト - I)|???(I)ブースト\ bを( - I)\がs *)\ W *'働くだろう。とにかく下のほうが良い答えがあります。 – chris85