2013-04-14 26 views
0

你好我想检查是否输入字符串修正与否,但是我碰到一些问题检查一个字符串是否在正则表达式的要求

String pattern = "[a-zA-z\\s]+"; 
String string="Richard Lin"; 
System.out.println(string.matches(pattern)); 

这将打印出真正但是如果我的字符串是字符串= “理查德·林”(更多的空间)它仍然是真实的。有没有一种方法来检测这? 我不想检查它是否有数字,我的字符串包含2个以上的元素。

+2

你真的有'[a-zA-z \ s] +'吗?有两个'z'? –

+0

你在'Az'附近的语法错误,尝试用'“[a-zA-Z \\ s] +”' –

回答

0

如果你想接受像你"a Bcd""Ab dcE f"等字符串可以使用

[a-zA-Z]+(\\s[a-zA-Z]+)+ 
  • [a-zA-Z]+会匹配"a""xYZ""something"
  • \\s[a-zA-Z]+将匹配与空间的话才
  • (\\s[a-zA-Z]+)+要在他们面前搭配空间连续的话,像" one"" one two"" some sentence with lot of words that have space at start"
+0

你能解释一下更多的PLZ吗? –

+0

非常感谢 –

3

你可以只匹配单个单词:

String pattern = "\\p{Alpha}{3,} \\p{Alpha}{3,}"; 
+0

'\ w'包含数字和下划线 - 这与OP的外观不一样对于。然而,这是正确的总体思路 - 不匹配空格作为名称组的一部分。 –

+0

我不想检查它是否只有字符 –

+0

,我想在字符串内有超过2个元素 –

相关问题