正規表現が2つの単語のいずれかに一致する


301

2つの値appleまたはしか持てない入力がありますbanana。2つの単語のどちらかが送信されたことを確認するには、どの正規表現を使用できますか?


2
この正規表現はどの言語/環境で実装されていますか?多くの場合、正規表現は不要なオーバーヘッドのように見えます。
mickmackusa

回答:


467

これは行います:

/^(apple|banana)$/

キャプチャされた文字列から除外するには(例:$1$2):

(?:apple|banana)

43
一部では、これを非キャプチャグループとして使用すると便利です。使用(?:apple|banna)のいずれかと一致しますが、撮影した文字列のリストにそれらを追加しません(例えば$1$2... $N)。
doub1ejack 2013

こんにちは、簡単な質問です。applebananaを一致させたくない場合はどうすればよいですか?
Grover Reyes

上記の正規表現は、appleとbananaには一致しますが、applebananaには一致しません。
phlogratos

99

さまざまな正規表現エンジンがありますが、それらのほとんどはこれで動作すると思います:

apple|banana

55
正規表現をさらに追加する場合は、次のように単語を括弧で囲む必要があります(apple|banana)
Brian J

しかし、大文字と小文字を区別しないようにするにはどうすればよいですか?
ニティッシュ

これはre.IGNORECASEフラグで設定されます。例:re.compile("(apple|banana)", re.IGNORECASE)
Troels Ynddal

-8

/.txt|.tif/SiteScopeで正規表現を使用して、2つの異なるタイプのファイル(.txtまたは.tifで終わるファイル)を検索するときに、ディレクトリモニターの「ファイル名の一致」を見つけることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.