【发布时间】:2026-01-31 10:10:01
【问题描述】:
在我的 javascript 应用程序中,我有这个随机字符串:
büert AND NOT 3454jhadf üasdfsdf OR technüology AND (bar OR bas)
我想匹配除单词AND、OR 和NOT 之外的所有单词特殊字符和数字。
我试过是这个
/(?!AND|OR|NOT)\b[\u00C0-\u017F\w\d]+/gi
这导致["büert", "3454jhadf", "asdfsdf", "technüology", "bar", "bas"]
但由于\b 字的边界,这个字与字首或字尾的ü 或a-z 字母表之外的任何其他字母不匹配。
删除 \b 奇怪地结束了匹配部分或我想排除的单词:
/(?!AND|OR|NOT)[\u00C0-\u017F\w\d]+/gi
结果是["büert", "ND", "OT", "3454jhadf", "üasdfsdf", "R", "technüology", "ND", "bar", "R", "bas"]
除了我想要排除的字符之外,匹配所有单词的正确方法是什么,无论它们包含什么类型的字符?
【问题讨论】:
-
上述链接问题中的
(?:^|\\s)解决方案将排除标点符号之后/之前以及类似上下文中的所有匹配项。应该使用否定字符类来确保与\b相同的功能。
标签: javascript regex