2013-03-30 4 views
0

저는 실제로 Java에 익숙하지 않고 정규식이 작동한다는 것을 알게되어 기쁩니다 ^^하지만 이제는 하나 이상의 문자열을 얻는 방법과 최선의 방법을 알아야합니다. 모든 것이 배열에 있으면. 사실 나는 이것을 이렇게 :Regex를 사용하여 두 개 이상의 문자열 찾기

Pattern p = Pattern.compile("name~(.*?)@"); 
Matcher m = p.matcher(response); 

while (m.find()) { 
    System.out.println("Found: " + m.group()); 
} 

아무도 도와 줄 수 있습니까?

+3

어떤 문제가 있습니까? –

+0

내가 쓴대로, 나는 단지 1 경기가 필요하지 않다, 나는 모든 경기가 필요하다 – Phil

+0

당신의 코드는 당신에게 모든 경기를 제공합니까? 그렇죠? – Howard

답변

1

당신은 단지 List에 결과를 넣어해야합니다

final List<String> results = new LinkedList<>(); 
while (m.find()) { 
    results.add(m.group()); 
} 

당신은 다음 직접 List의 결과에 액세스 할 수 있습니다 - 당신이 랜덤 액세스 오히려 LinkedList보다는 ArrayList를 사용해야하는 경우. 당신이 배열을해야하는 경우 단순히 [^@] 일치하고 소유하기보다는 꺼려 .*

를 사용하여 당신이 String에서 여러 항목을 일치하는 경우가

final String[] resultArr = results.toArray(new String[results.size()]); 

조금 밖으로 정규식 엔진을 도울 수 변환

Pattern p = Pattern.compile("name~([^@]++)@"); 
관련 문제