基于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.,\']*$\");
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...