name1 または name2 を含むパターンを見つけるために正規表現を構築する方法を教えてください。
すなわち、
text = 'the lion and the tiger are animals'
テキストに文字列ライオン、または文字列トラが含まれているかどうかを確認する正規表現を作成したいと思いますか?
単語で [ae] を作成し、一致または a または e を見つけることは知っていますが、単語全体についてはわかりません。
ありがとう!
「lion」または「tiger」が完全な単語であることを確認したい場合、これまでの回答はうまく機能しません (つまり、「footigerbar」などと一致します)。部分文字列だけでなく、「ライオン」または「トラ」という単語であることを確認したい場合は、次のようにします。
\b(lion|tiger)\b
\b
単語の境界を示します。これにより、正規表現が一致しないことが保証されます。
正規表現では、論理 OR は|
です。つまり、次のようになります。
lion|tiger
たとえば、
^.*(lion|tiger).*$
「パイプ」も使用できますが、-E
オプションが必要ですgrep
grep -E 'lion|tiger'
OR を使用できます。
(lion|tiger)