基于Java的正则表达式,允许使用字母数字字符和',和

Mr *_*ton 4 java regex

我是Java中正则表达式的新手,我需要验证字符串是否只包含字母数字字符,逗号,撇号和句点(句点).其他任何东西都应该等于假.

任何人都可以提供任何指示吗?

我现在有这个,我相信字符串中的每个字符都有字母数字:

 Pattern p = Pattern.compile("^[a-zA-Z0-9_\\s]{1," + s.length() + "}");
Run Code Online (Sandbox Code Playgroud)

谢谢

奥尔巴尼卡克斯顿先生

aio*_*obe 10

我是Java中正则表达式的新手,我需要验证字符串是否只包含字母数字字符,逗号,撇号和句(句点).

我建议你使用\p{Alnum}该类来匹配字母数字字符:

Pattern p = Pattern.compile("[\\p{Alnum},.']*");
Run Code Online (Sandbox Code Playgroud)

(我注意到你包含\s在你当前的模式中.如果你也想允许空格,只需添加\s字符类.)

来自以下文件Pattern:

[...]

\p{Alnum} 字母数字字符:[\p{Alpha}\p{Digit}]

[...]


您不需要包含^{1, ...}.只需使用类似Matcher.matchesString.matches匹配完整模式的方法.

另请注意,您不需要.在字符类([... ])中进行转义.