正则表达式匹配不包含单词的行

我试图创建一个正则表达式,用于在grep语句中匹配不包含单词的行。 在下面的例子中,我在每行中都有uhu,uhuu,uhuuu,uhuuu这两个词。 我用一个回声在一个命令中做到了这一点。 结果是:

line1 = uh - end
line2 = uhu - end
line3 = uhuu - end
line4 = uhuuu - end
line5 = uhuuuu - end

不要介意行号和结束词。 所以,我想grep uhuu的只有2和4重复,这是第3和第5行。我试过:

echo -e 'line1 = uh - endnline2 = uhu - endnline3 = uhuu - endnline4 = uhuuu - endnline5 = uhuuuu - end' | grep -E 'uh(u{2}|u{4})'
line3 = uhuu - end
line4 = uhuuu - end
line5 = uhuuuu - end

它带来了第3和第5行,但也是第4行,因为uhuuu有2个,还有第3个。 所以我的问题是,使用正则表达式,是否有可能仅考虑'uhuuu'这个词来排除第4行?

我知道我可以用管道和grep -v来完成这一切,但我想知道这是否可以使用RegEx来完成。

我检查了这个链接,但无法找到一种方法使它适用于我的案例。 谢谢你https://stackoverflow.com/questions/406230/regular-expression-to-match-line-that-doesnt-contain-a-word#=


分组后使用字边界元字符:

grep -E 'uh(u{2}|u{4})b'
链接地址: http://www.djcxy.com/p/2163.html

上一篇: Regex to match lines not containing a word

下一篇: Regular expression for word that doesn't match a list of words