正则表达式搜索text1或text2

时间:2013-04-22 21:43:09

标签: regex grep

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

即,

text = 'the lion and the tiger are animals'

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

我知道用文字你会做[ae]并找到匹配或a或e,但总的来说,我不确定。

谢谢!

4 个答案:

答案 0 :(得分:2)

在regexp中,逻辑OR为|。也就是说:

lion|tiger

所以,例如,

^.*(lion|tiger).*$

答案 1 :(得分:2)

如果你想确保“狮子”或“老虎”是完整的单词(即它们仍然匹配“footigerbar”之类的东西),到目前为止答案将不会有效。如果你想确保它是单词“lion”或“tiger”,而不仅仅是子串,那么下面的内容将会这样做:

\b(lion|tiger)\b

\b表示单词边界,可确保您的正则表达式不匹配,例如'unadsasdeflionasdeafeg'或'蒲公英'。

答案 2 :(得分:1)

您可以使用OR:

(lion|tiger)

答案 3 :(得分:1)

您可以使用“竖管”还需要-E

grep选项
grep  -E 'lion|tiger'