如何解决基于Java的正则表达式,允许使用字母数字字符和\'和
|| 我是Java正则表达式的新手,我需要验证字符串是否仅包含字母数字字符,逗号,撇号和句号(句点)。其他任何事情都应等同于错误。 任何人都可以指点一下吗? 我现在有这个,我相信字符串中的每个字符都有字母数字: Pattern p = Pattern.compile(\"^[a-zA-Z0-9_\\\\s]{1,\" + s.length() + \"}\");
谢谢
奥尔巴尼·卡克斯顿先生
解决方法
我是Java正则表达式的新手,我需要验证字符串是否仅包含字母数字字符,逗号,撇号和句号(句点)。
我建议您使用
\\p{Alnum}
类来匹配字母数字字符:
Pattern p = Pattern.compile(\"[\\\\p{Alnum},.\']*\");
(我注意到您在当前模式中包括了\\s
。如果您也想允许空格,只需在字符类中添加\\s
。)
从Pattern
的文档中:
[...]
\\p{Alnum}
字母数字字符:[\\p{Alpha}\\p{Digit}]
[...]
您不需要包含^
和{1,...}
。只需使用Matcher.matches
或String.matches
之类的方法即可匹配完整模式。
另外,请注意,您无需在字符类([
...]
)中转义.
。
, Pattern p = Pattern.compile(\"^[a-zA-Z0-9_\\\\s\\\\.,]{1,\" + s.length() + \"}$\");
, 把事情简单化:
String x = \"some string\";
boolean matches = x.matches(\"^[\\\\w.,\']*$\");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。