2
我需要一个正则表达式来测试某个人的可能名称。它应该包含拉丁字母,西里尔字母,空白字符和_
标志。GWT的正则表达式结果不同于Java中的相同正则表达式
在Java中我写了下面的正则表达式,貌似这就是我需要:
String regex = "([\\w&&\\D]|[\\u0410-\\u044F]|[\\s])+"
在GWT这个工程并不像预期一样:它接受#$%^
...等标志。我必须写第一组为[a-zA-Z_]
得到我想要的:字母和_
标志。
而且,我修改前,有个老人正则表达式,它看起来像
String regex = "([\\w&&\\D]+|[\\u0410-\\u044F]+|[\\s]+)";
此基础上我的Java体验应该只接受来自拉丁字母和_
标志,或词组合词合成仅为西里尔来自空白的字母或单词。但实际上在GWT中它接受所有的词,甚至&*(
......等标志。
所以问题是:
1)为什么[\\w&&\\D]
并不等同于GWT [a-zA-Z_]
?
2)为什么GWT中的[...]+|[...]+|[...]+
在Java中表现得像([...]|[...]|[...])+
?
是的,就是这里所说的:[RegExp(Google Web Toolkit Javadoc)](http://www.gwtproject.org/javadoc/latest/com/google/gwt/regexp/shared/RegExp.html)。 –
正则表达式和数字类型是GWT编译代码的两个主要语义缺陷(在开始使用GWT时很早就学会了这一点)。在GWT中几乎没有其他的“语言/ JavaSE级别”惊喜,所以不要害怕。欲了解更多信息,请参阅http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsCompatibility.html#differences –
谢谢,Petteri,但是有一些列表与这些差异的逻辑差异或一些解释? – KutaBeach