使用Regex UNIX查找单词中间的某些字符

时间:2014-06-12 04:02:27

标签: regex linux unix

我需要在'我的猫是棕色'中创建一个匹配cat的正则表达式,但不能在类别或bobcat中创建。然后我需要创建另一个与staccato中的cat匹配的正则表达式,但不能在之前的三个中匹配任何一个。

这是我正在进行的一项任务。我得到第一部分工作,我使用/ .at /并找到了猫,但我被困在第二部分,我无法弄清楚如何在断断续续地找到猫。我能做的最好的是cat \ o并找到'cato'或[c] .at并找到ccat。

2 个答案:

答案 0 :(得分:1)

\bcat\b将匹配'我的猫是棕色',但不匹配'类别','bobcat'或'staccato'

\Bcat\B将匹配'staccato',但不会匹配'我的猫是棕色','类别'或'bobcat'

匹配(或不匹配)字边界是解决方案的关键。

答案 1 :(得分:0)

使用grep:

echo "staccato" | grep -o "cat"
#prints "cat"

也适用于'我的猫是棕色':

echo "My cat is brown" | grep -o "cat"
#prints "cat"