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