2009-09-11 1 views
2

/g (여러 일치를 얻기 위해)와 괄호 (역 참조를 얻기 위해)를 모두 사용하는 경우 정규 표현식에 의해 반환 된 배열에 대해 혼란스러워합니다. 일치 배열의 첨자가 다중 참조를 참조하는 것으로 보이고 역 참조를 나타내지 않으므로 역 참조를 얻는 방법이 내게 명확하지 않습니다.여러 일치 (/ g)를 자바 스크립트 정규 표현식에서 역 참조와 결합하는 방법

예를 들어

:이 "@abc", "@bcd", "@cde"
을 반환

string = "@abc @bcd @cde";  
re2 = '@([a-z]+)';  
p = new RegExp(re2,["g"]);  
m = string.match(p) 
for (var i in m) { alert(m[i]; } 

그러나 나는 "abc", "bcd", "cde"

가 어떻게 후자를받을 수 있나요 반환하려면?

+1

죄송합니다, 어떻게 동의 할을? 대단히 stackoverflow 주셔서 감사하고 최적으로 참여하고 싶습니다 – brad

답변

5
var str = "@abc @bcd @cde", 
    re = /@([a-z]+)/g, 
    match; 

while (match = re.exec(str)) { 
    // match[1] contains text matched by first group, match[2] - second, etc. 
    alert(match[1]); 
} 
+0

좋아, 이것은 실제로 놀랍게도 찾기가 힘들었습니다. – gatapia

0

당신은 비 캡처 그룹을 사용해야합니다

(?:@)([a-z]+) 
관련 문제