连字符/短横线应包含在正则表达式单词边界\b中。

5

简单来说:

echo "xxxxx Tyyy zzzzz" | egrep "\byyy\b" 

(没有匹配项是正确的)

echo "xxxxx T-yyy zzzzz" | egrep "\byyy\b" 
xxxxx T-yyy zzzzz

我不希望它像第二个表达式那样匹配,请告诉我如何实现这一点,谢谢。
1个回答

4

您可以使用:

echo "xxxxx T-yyy zzzzz" | grep -E "(^|[^-])\byyy\b([^-]|$)"

(^|[^-])\byyy\b([^-]|$)将匹配左侧的开始或非连字符并匹配的单词yyy的右侧的结束或非连字符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接