2013-04-14 3 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""xYZ" 같은 단어를 일치합니다

[a-zA-Z]+(\\s[a-zA-Z]+)+ 
  • [a-zA-Z]+를 사용 할 수 있습니다에 "a Bcd""Ab dcE f" 그래서 같은 문자열을 수락 할 경우 "something"
  • (\\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 개 이상의 요소가 있어야한다. –

관련 문제