我需要一个正则表达式来测试某人可能的名字。它应包含拉丁字母、西里尔字母、空白字符和 _
符号。
在Java中,我编写了以下正则表达式,看起来这就是我需要的:
String regex = "([\\w&&\\D]|[\\u0410-\\u044F]|[\\s])+"
在 GWT 中,这并不按预期工作:它接受 #$%^
...等标志。我必须将第一组写为 [a-zA-Z_]
得到我想要的东西:字母和 _
标志。
而且,在我修改之前,有一个旧的正则表达式,看起来像
String regex = "([\\w&&\\D]+|[\\u0410-\\u044F]+|[\\s]+)";
根据我的 Java 经验,它应该只接受由拉丁字母和 _
组合而成的单词。符号,或仅由西里尔字母或空格单词组合而成的单词。但实际上在 GWT 中它接受所有单词,甚至 &*(
...等标志。
所以问题是:
1) 为什么是[\\w&&\\D]
不等于[a-zA-Z_]
在 GWT 中?
2) 为什么 [...]+|[...]+|[...]+
在 GWT 中的行为类似于 ([...]|[...]|[...])+
在Java 中?
最佳答案
GWT 生成 JS,所以原因可能是 JS 和 Java 之间的正则表达式差异。
关于java - GWT 正则表达式结果与 Java 中的相同正则表达式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20655650/