正则表达式——7.4 单词边界
单词边界的准确解释是:一端必须出现\w能匹配的字符,另一端不出现\w能匹配的字符。在JavaScript、PHP、Python 2、Ruby中,\w只能匹配[0-9a-z-A-Z_]。所以在这些语言中,\b\w+\b能用来匹配几乎所有的英文单词。



| 字符串 | 正则表达式 | 能否匹配 | 说明 |
|---|---|---|---|
| tom,jerry(半角标点) | \btom\b | 能 | \w不能匹配半角标点 |
| tom,jerry(全角标点) | \btom\b | 否 | \w可以匹配全角标点 |
| tom和jerry | \b和\b | 否 | \w可以匹配中文字符 |
| 汤姆,jerry(半角标点) | \btom\b | 能 | \w不能匹配半角标点 |
| 汤姆,jerry(全角标点) | \btom\b | 否 | \w可以匹配全角标点 |
总的来说,如果使用 Unicode 匹配规则,尽量不要在处理中英文混排文本时使用\b。如果使用 ASCII 匹配规则,则可以再处理英文文本时放心地使用\b。
也有更复杂的情况,比如 Java 就是如此。在 Java 中,虽然\w只能匹配[0-9a-zA-Z_],\b对“单词字符”的判断确实按照 Unicode 匹配规则的。后面有详情

浙公网安备 33010602011771号