我想要一些有关Java正则表达式的帮助。
我正在尝试匹配仅包含基本拉丁(ASCII)字符或仅希腊Unicode字符的任何字符串。不允许这两组中包含混合字符的字符串。
我有这个正则表达式,它与完全相反的正则表达式匹配(所有字符串至少包含一个希腊字符和一个拉丁字符),但是找不到否定此值的方法:
https://regex101.com/r/JHzmhc/1
提前致谢。
最佳答案
您可以使用
^(?:[\u0000-\u007F]+|[\u0370-\u03FF]+)$
见regex demo
详细信息:
^
-字符串(?:
-一个非捕获组的开始(以便可以将 anchor 应用于这两个替代词):[\u0000-\u007F]+
-1+ ASCII字符|
-或[\u0370-\u03FF]+
-1+希腊字符)
-组$
-字符串结尾。