在JavaScript中:
"ab abc cab ab ab".replace(/\bab\b/g, "AB");
正确地给我:
"AB abc cab AB AB"
当我使用utf-8字符时:
"αβ αβγ γαβ αβ αβ".replace(/\bαβ\b/g, "AB");
在字边界运营商似乎没有工作时:
"αβ αβγ γαβ αβ αβ"
这个问题有方法解决吗?
仅当一个单词字符之前或之后没有另一个单词字符(因此.\b.等于\W\w和\w\W)时,单词边界声明才匹配。并且\w定义为[A-Za-z0-9_]。因此\w与希腊字符不匹配。因此,您不能\b在这种情况下使用。
.\b.
\W\w
\w\W
\w
[A-Za-z0-9_]
\b
相反,您可以使用以下方法:
"αβ αβγ γαβ αβ αβ".replace(/(^|\s)αβ(?=\s|$)/g, "$1AB")