"bar"が含まれているが、 "modal"と同じでないすべての単語をフルワードとして一致させるには、このパターンを使用できます。
パターン:
\w*dal(?<!\bmodal\b)\w*
説明:
\w*
一致単語任意の数の文字(英数字および下線 "_")、ゼロ
dal
含むこと文字通り配列 "DAL" と一致
(?<!\bmodal\b)
は、「モーダル」シーケンスがこのトークンの左側ですぐに一致させる。
\b
はワード境界でのみ一致しますが、文字は消費しません。
\w*
一致単語任意の数の文字(英数字と「_」アンダースコア)、ゼロ
Check this regex out on regex101.com
含めてこれは質問の前に有効であった私の答えの古いバージョンであります更新:
i
(大文字小文字の区別なし)フラグとともに下記のパターンを使用できます。
正規表現を処理するために使用するプログラミング言語や環境に応じて、パターンの別々の出現と一致するようにg
(グローバル)フラグを設定するか、すべての一致を検索する環境のメソッドを使用するか、のようなPythonでre.findall()
。
パターン:
\S*(?<!mo)dal\S*
説明:
Check this regex out on regex101.com
より一般的に含む文字通り
\S*
マッチ "DAL" 非空白文字の任意の数の、あなたはこのパターンを使用することができますプレースホルダを置き換えた後%%REQUIRED%%
、%%FORBIDDEN_LEFT%%
および%%FORBIDDEN_RIGHT%%
あなたが必要とするどんな弦でも。 たとえば、 "cd"は一致させたいが、 "abcdef"は一致させたくない場合は、パターン\S*(?<!ab)cd(?!ef)\S*
を使用する必要があります。
あなたは['\ b \ w *(?<!(?:mo))dal \ w * \ b'](https://regex101.com/r/rK3oP9/2)あなたのプログラミング言語をより正確に説明してください。 – Jan
@Janこれは、基本的に私が既に提案したパターンです(いくつかの不要な追加がありますが、 '\ b'も必要でもなく、" mo "を非捕捉グループに入れる必要もありません)。 –
@ByteCommander:そうです、答えを読んでいないし、私を削除しました。 – Jan