0

我是正则表达式的新手,如何构建一个正则表达式来查找其中包含 name1 或 name2 的模式。

IE,

text = 'the lion and the tiger are animals'

我想构建一个正则表达式来查找文本中是否包含字符串 lion 或字符串 tiger?

我知道通过单词你会做出 [ae] 并且会找到匹配项或 a 或 e,但对于整个单词我不确定。

谢谢!

4

4 回答 4

2

在正则表达式中,逻辑 OR 是|. 也就是说:

lion|tiger

所以,例如,

^.*(lion|tiger).*$
于 2013-04-22T21:45:04.380 回答
2

如果您想确保“lion”或“tiger”是完整的单词(即它们仍然会匹配“footigerbar”之类的内容),那么到目前为止的答案都不会奏效。如果你想确保它是单词“lion”或“tiger”,而不仅仅是子字符串,如下所示:

\b(lion|tiger)\b

\b表示单词边界,这将确保您的正则表达式不匹配,例如“unadsasdeflionasdeafeg”或“dandelion”。

于 2013-04-22T21:50:41.160 回答
1

您可以使用 OR:

(lion|tiger)
于 2013-04-22T21:45:33.387 回答
1

您可以使用“管道”还需要-E选项grep

grep  -E 'lion|tiger'
于 2013-04-22T21:45:56.740 回答