2014-09-09 6 views
1

나는 다음과 같은 문자열에서 숫자를 추출하기 위해 노력하고있어 :Matcher를 찾지 못하는 일치

Pattern p = Pattern.compile("([0-9]{2})/([0-9]{2})/([0-9]{4})"); 
Matcher m = p.matcher(startDatepicker); 

String startYear = m.group(3); 
String startMonth = m.group(1); 
String startDay = m.group(2); 

startDatepicker 포함 : 09/29/2014

저는 현재 코드를 사용하고

09/29/2014

그러나 나는 어떤 일치도받지 못하고있다. 나는 또한 \\과 함께 슬래시를 벗어나려고했지만 그것도 작동하지 않았다.

내가 누락 된 항목이 있습니까?

도움 주셔서 감사합니다.

답변

0

, 당신은 정규에 find()를 호출하고 일치를 발견했다 확인해야합니다

Pattern p = Pattern.compile("([0-9]{2})/([0-9]{2})/([0-9]{4})"); 
Matcher m = p.matcher(startDatepicker); 
if (!m.find()) { 
    return; 
} 
String startYear = m.group(3); 
String startMonth = m.group(1); 
String startDay = m.group(2); 

m.find() 위치 첫 경기에서 정규의 호출.

Demo.

0

일치 그룹을 반복하려면 find()으로 전화해야합니다.

Pattern p = Pattern.compile("([0-9]{2})/([0-9]{2})/([0-9]{4})"); 
Matcher m = p.matcher(startDatepicker); 
while (m.find()) { 
    ... 
} 

p.matcher()에 전달 된 입력에 정규식의 발생에 대한 find() 검색 방법. 일치하는 항목이 여러 개 있으면이 메서드는 첫 번째 항목을 찾은 다음 후속 호출마다 다음 일치 항목으로 이동합니다. 당신이 일치하는 그룹에 액세스 할 수 있습니다 전에

관련 문제