我不明白 \b
之间的区别和 \<
在 GNU sed 和 GNU grep 中。在我看来 \b
可以随时更换\<
和 \\>
无需更改匹配字符串集。
更具体地说,我试图找到其中 \bsomething
的例子。和 \\< something
不匹配完全相同的字符串。
同样的问题 something\b
和 something\\>
.
谢谢
最佳答案
我怀疑您是否使用(更常见的)\b
很少有区别。或(更具体的)\<
和 \>
,但我可以想到一个例子。这是相当人为的,我怀疑在大多数现实世界的正则表达式使用中它不会有什么不同,但这应该表明它至少在某些情况下可以有所作为。
如果我有以下文字:
this is his pig
我想知道是否
/\bis\b/
匹配,如果我改用 /\<is\>/
也没关系或者我改为使用 /\>is\</
但是如果我的文字是
is this his pig
在"is"之前不再有词尾边界,只有词首边界。使用
/\bis\b/
匹配,当然还有 /\<is\>/
也是,但是 /\>is\</
没有。然而,在现实生活中,我认为你真的需要能够做出这种区分并不常见,这就是为什么(至少在 sed 之外)
\b
是正则表达式的普通单词边界标记。
关于regex - sed 和 grep 中单词的开头和结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17382272/