繁体   English   中英

两个正则表达式字符\\ b和\\有什么区别

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM