我写了这个正则表达式来标记文本:"\b\w+\b"
但有人建议我将其转换为\b[^\W\d_]+\b
任何人都可以向我解释为什么第二种方式(使用否定)更好?
感谢
答案 0 :(得分:1)
第一个匹配所有字母,数字和下划线。根据正则表达式引擎,这可能包括unicode字母和数字。 (在这种情况下,单词边界是多余的btw。)
第二个正则表达式只匹配字母(不包括非字符字符,数字和下划线)。由于单词边界,它只会匹配它们,如果它们被非单词字符或字符串的开头/结尾包围。
如果您的正则表达式引擎支持此功能,您可能希望使用[[:alpha:]]
或\p{L}
(或非{un}的[A-Za-z]
),而不是让您的意图更清晰。