【发布时间】:2012-10-31 13:11:26
【问题描述】:
我正在寻找 Java 中的正则表达式 java.util.regex,以仅接受字母 ’、- 和 . 以及一系列 Unicode 字符,例如变音符号、eszett、变音符号和其他有效字母来自欧洲语言。
我不想要的是数字、“ ” 或“ Tom” 等空格,或!”£$% 等特殊字符。
到目前为止,我发现它非常混乱。
我从这个开始
[A-Za-z.\\s\\-\\.\\W]+$
最后是这样的:
[A-Za-z.\\s\\-\\.\\D[^!\"£$%\\^&*:;@#~,/?]]+$
根据the documentation,使用cavat 表示没有内方括号
任何人对新的正则表达式有任何建议或上述不起作用的原因?
【问题讨论】:
-
您是否收到错误消息,或者只是不匹配。在这两种情况下,请告诉我们更多信息到底发生了什么。
-
一个问题可能是您使用
\\D。在否定字符类中使用\\d。此外,您应该在开头添加^。否则,如果字符串的最后一个字符是允许的字符之一,则您的正则表达式将匹配。