我是正则表达式的新手,如何构建一个正则表达式来查找其中包含 name1 或 name2 的模式。
IE,
text = 'the lion and the tiger are animals'
我想构建一个正则表达式来查找文本中是否包含字符串 lion 或字符串 tiger?
我知道通过单词你会做出 [ae] 并且会找到匹配项或 a 或 e,但对于整个单词我不确定。
谢谢!
在正则表达式中,逻辑 OR 是|
. 也就是说:
lion|tiger
所以,例如,
^.*(lion|tiger).*$
如果您想确保“lion”或“tiger”是完整的单词(即它们仍然会匹配“footigerbar”之类的内容),那么到目前为止的答案都不会奏效。如果你想确保它是单词“lion”或“tiger”,而不仅仅是子字符串,如下所示:
\b(lion|tiger)\b
\b
表示单词边界,这将确保您的正则表达式不匹配,例如“unadsasdeflionasdeafeg”或“dandelion”。
您可以使用 OR:
(lion|tiger)
您可以使用“管道”还需要-E
选项grep
grep -E 'lion|tiger'