我需要一些有关 Javascript 正则表达式的帮助。
我正在尝试匹配仅包含基本拉丁 (ASCII) 字符或仅包含希腊语 Unicode 字符的任何字符串。不允许包含来自这两个集合的混合字符的字符串。
我有一个匹配完全相反的正则表达式(所有字符串至少包含一个希腊字符和一个拉丁字符),但找不到一种方法来否定它:
https://regex101.com/r/JHzmhc/1
提前致谢。
最佳答案
你可以使用
^(?:[\u0000-\u007F]+|[\u0370-\u03FF]+)$
参见 regex demo
详细信息:
^
- 字符串的开始(?:
- 非捕获组的开始(以便 anchor 可以应用于两个替代项):[\u0000-\u007F]+
- 1+ 个 ASCII 字符|
- 或者[\u0370-\u03FF]+
- 1+ 个希腊字符
)
- 组结束$
- 字符串结尾。
关于Javascript 正则表达式匹配具有非混合 unicode 字符范围的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44701517/