【发布时间】:2013-12-18 18:46:53
【问题描述】:
我需要一个正则表达式来测试某个人的可能姓名。它应该包含拉丁字母、西里尔字母、空白字符和_ 符号。
在 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 中的 ([...]|[...]|[...])+?
【问题讨论】: