当前位置: 首页 > 面试题库 >

javascript中的utf-8字边界正则表达式

欧奇希
2023-03-14
问题内容

在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在这种情况下使用。

相反,您可以使用以下方法:

"αβ αβγ γαβ αβ αβ".replace(/(^|\s)αβ(?=\s|$)/g, "$1AB")


 类似资料:
  • 我正在使用以下正则表达式: 我的目标是只验证数字(int和decimal),空格, ( ), 点,AND,OR。其他一切都是不允许的。它看起来像是工作的,但是我对单词边界\bAND\b和\bOR\b Eg有问题。我不能输入ANDWE或EEE或任何组合,但我能做的是AN或A。如何在字符串中只允许两个单词AND或OR?它们在字符串中是可选的。 输入示例 0.10和23-有效 12和(15或0.2)-有

  • 问题内容: 我想在Elastisearch中使用单词边界进行正则表达式查询,但是看起来Lucene正则表达式引擎不支持。我可以使用哪些解决方法? 问题答案: 在ElasticSearch regex风格中,没有直接等效于单词边界的功能。最初是一样的东西,如果用一个字字符开始,并且尾部就像如果用一个字字符结束。 因此,我们需要确保在字符串的前后或字符串的开始/结束处有一个非单词char 。由于正则表

  • 问题内容: 在PHP中,我们可以用来确定字符串是否为有效的UTF-8。但这不是可移植的解决方案,因为它需要编译并启用mbstring扩展名。此外,它不会告诉我们 哪个 字符无效。 是否存在可以匹配给定字符串中无效的UTF-8字节的正则表达式(或其他100%可移植的其他方法)。这样,可以在需要时替换那些字节(保留二进制信息,例如在构建包含二进制数据的测试输出xml文件时)。因此,将字符转换为UTF-

  • 问题内容: 例如,我想匹配组成的字符串m来n中国的字符,然后我可以使用: 是否存在单个汉字的某些正则表达式,可能是存在的任何汉字? 问题答案: 与中文(好吧,CJK)字符匹配的正则表达式为 可以简化为 这假定您的正则表达式编译器满足UTS#18 Unicode正则表达式的RL1.2属性要求。Perl和Java 7都符合该规范,但其他许多不符合。

  • 问题内容: 我目前正在编写一个用于匹配内容中特定单词的库。 本质上,它的工作方式是将单词编译为正则表达式,然后通过所述正则表达式运行内容。 我要添加的功能是指定要匹配的给定单词是否必须以单词开头和/或结尾。例如,我有这个词。我指定它 必须开始一个字 ,因此将 匹配 的是在开始,但 不能匹配 为不启动的话。 我想使用单词边界来执行此操作,但是在进行一些测试时,我发现它无法正常运行。 采取以下措施,

  • 我试图为密码字段创建一个验证,它只允许字符和 时有什么区别,以及哪些字符来自