[英]What's the difference the two regular expression characters \b and \<
在脚本中,我正在阅读正则表达式,它说:
'\\b'
击中了单词的前边框 '\\<'
点击了这个词的开头 那么使用以下内容有什么不同
\\b
over \\<
\\b
over \\>
我的man grep
告诉我关于\\b
:
符号
\\<
和\\>
分别匹配单词开头和结尾的空字符串。 符号\\b
匹配单词边缘的空字符串,[...]
所以\\bfoo\\b
会匹配\\<foo\\>
匹配的地方。
另一方面:有很多正则表达式变体,很难说你用它做什么\\b
。
\\b
就像\\<
和\\>
组合:
\\<
在单词开头匹配, \\>
在单词结尾处匹配, \\b
在单词的开头或结尾处匹配, \\B
匹配除了单词的开头或结尾。 您的来源似乎是错误的,或者至少是不完整的。 \\b
匹配任何边框,而不仅仅是前边框。 引用man grep
:
符号\\<
和\\>
分别匹配单词开头和结尾的空字符串。 符号\\b
匹配单词边缘的空字符串
grep
's \\b
相当于grep
的\\(\\<\\|\\>\\)
如果您熟悉Perl正则表达式,
grep
的\\<
等同于Perl (?<!\\w)(?=\\w)
grep
的\\>
相当于Perl的(?<=\\w)(?!\\w)
grep
的\\b
等同于Perl的\\b
grep
's \\b
相当于Perl (?:(?<!\\w)(?=\\w)|(?<=\\w)(?!\\w))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.