C#で正規表現を使用して文から複数の文字列を一致させる方法は?
たとえば、次の文では、文字列L - V
とDom
が存在するかどうかを確認したいと思います。
L - V 8:30 a 22:00 時間. Sab y Dom..11:00 a 22:00 hrs.
正規表現の AND 演算子に問題があります。
Regex.IsMatch(hours, @"\bL - V\b.*?\Dom\b")
何か案は?
ありがとう
用語を AND で結合するのが RegEx のデフォルトの動作です。「Dom」の「D」の前のバックスラッシュを除いて、あなたの表現はほぼ正しいです。単語全体のみを検索するために、「Dom」の前に「\b」を追加することもできます。また、「?」パターンの存在のみを確認したい場合は、違いはありません。
\bL - V\b.*\bDom\b
文字列に「L - V」または「Dom」のいずれかを含める必要がある場合、式は次のようになります。
\b(L - V|Dom)\b
単語全体を見つけることが重要でない場合は、両方の式の "\b" をすべて削除するか ( "L - V.*Dom"
resp. "L - V|Dom"
)、または単に
hours.Contains("L - V") && hours.Contains("Dom")