我想要一些有关Java正则表达式的帮助。

我正在尝试匹配仅包含基本拉丁(ASCII)字符或仅希腊Unicode字符的任何字符串。不允许这两组中包含混合字符的字符串。

我有这个正则表达式,它与完全相反的正则表达式匹配(所有字符串至少包含一个希腊字符和一个拉丁字符),但是找不到否定此值的方法:

https://regex101.com/r/JHzmhc/1

提前致谢。

最佳答案

您可以使用

^(?:[\u0000-\u007F]+|[\u0370-\u03FF]+)$

regex demo

详细信息:
  • ^-字符串
  • 的开始
  • (?:-一个非捕获组的开始(以便可以将 anchor 应用于这两个替代词):
  • [\u0000-\u007F]+-1+ ASCII字符
  • |-或
  • [\u0370-\u03FF]+-1+希腊字符
  • )-组
  • 的结尾
  • $-字符串结尾。
  • 09-25 18:24
    查看更多