我想知道是否有某种规则使用单词边界,除了使用单词。在我的情况下,我希望在特定单词后捕获一个值,我应该用\ b's包裹这个单词吗?
/\bCOMP:\s*(\d{2}\/\d{4})\b/
VS
/\bCOMP\b:\s*\b(\d{2}\/\d{4})\b/
更正确的方法是什么?
另外,会影响性能吗?
感谢。
答案 0 :(得分:3)
一般情况下,除非您想避免包含字符串的字词,否则您不需要www.example.com
。
\b
非常有用,因为如果您只想\bCOMP:
,它会避免匹配SOMECOMP:
。
COMP
是不必要的,因为/COMP\b:
已经确保:
将以字边界结束。同样,COMP
是不必要的,因为它已经要求:\s*\b\d{2}
之前的字符是非单词字符。
真正的性能差异可能非常小,如果它存在的话。但是,省略不必要的\d{2}
模式会使正则表达式更简单,更清晰。