在我正在阅读有关正则表达式的脚本中,它说:
'\b'击中单词的前边界'\<'击中单词的开头
那么使用以下有什么区别
\b超过\<\b超过\>
\b就像\<并\>结合:
\<在单词的开头匹配,\>在词尾匹配,\b在单词的开头或结尾匹配,\B匹配单词的开头或结尾除外。我man grep告诉我\b:
符号
\<和\>分别匹配单词开头和结尾的空字符串。该符号\b与单词边缘的空字符串匹配,[...]
所以\bfoo\b会匹配任何匹配的地方\<foo\>。
另一方面:正则表达式的变体太多了,很难说出你的\b.
您的来源似乎是错误的,或者至少是不完整的。\b匹配任何边框,而不仅仅是前面的边框。报价man grep:
符号\<和\>分别匹配单词开头和结尾的空字符串。该符号\b与单词边缘的空字符串匹配
grep's\b等价于grep's\(\<\|\>\)如果您熟悉 Perl 正则表达式,
grep's\<等价于 Perl 的(?<!\w)(?=\w)grep's\>等价于 Perl 的(?<=\w)(?!\w)grep's\b等价于 Perl 的\bgrep's\b等价于 Perl 的(?:(?<!\w)(?=\w)|(?<=\w)(?!\w))