2011-10-24 2 views
2

23ert[word]45y[li]dfdf[beautiful]adf과 같은 문자열이 있습니다. 배열이나 컬렉션에 괄호로 묶인 각 단어 [...]을 수집하고 싶습니다. 예제 문자열은 배열이나 컬렉션에 [word], [li][beautiful]이됩니다.문자열에 괄호 (괄호 포함) 내용을 통계하는 방법

어떻게 정규 표현식이나 다른 방법을 사용하여 이것을 할 수 있습니까?

편집 : 나는 좋은 veru 추적 방법을 사용하지만 때 문자열이 56 [타이 [DF] 유] 5,689대로, 난 단지 취득하고자 할 때 [DF], 코드

답변

2
static public List<String> collect(String str) { 
    List<String> list = new ArrayList<String>(); 
    Pattern p = Pattern.compile("\\[.+?\\]"); 
    Matcher m = p.matcher(str); 
    while (m.find()) 
     list.add(m.group()); 
    return list; 
} 
+0

+1 11 초 빠름 : D – FailedDev

+0

대단히 감사합니다. – pengwang

+0

죄송합니다. 귀하의 방법은 매우 좋았지 만, 문자열을 45 [d [12] f]로 사용하고 싶으면 [12 ], 귀하의 방법을 사용하여 내가 할 수 없어요, 당신은 다시 나를 도울 수 있습니까? 고마워요 – pengwang

2
List<String> matchList = new ArrayList<String>(); 
try { 
    Pattern regex = Pattern.compile("\\[.+?\\]"); 
    Matcher regexMatcher = regex.matcher(subjectString); 
    while (regexMatcher.find()) { 
     matchList.add(regexMatcher.group()); 
    } 
} catch (PatternSyntaxException ex) { 
    // Syntax error in the regular expression 
} 
을 수정하는 방법

시도해보십시오.

+0

고마워요! :) 그 좋은 sportsmanship –

+0

미안하지만, 나는 당신의 방법을 아주 좋은 질문이 있는데, 나는 45 [d [12] f]로 문자열을 사용할 때, 나는 당신의 방법을 사용하여 [12]를 원한다. 다시 도와주세요. 고마워요. – pengwang

+0

@pengwang 정기적 인 망각으로 이것을 할 수는 있지만, 예를 들어 [[[something]]와 일치시키고 싶습니까? – FailedDev