簡體   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