2011-09-21 3 views
2

나는이 사람이하고있는 것과 똑같은 일을하려하고있다. 그는 루비에서 그 일을하고있다. 나는 자바 스크립트를 통해 그것을하려고하고있다.자바 정규식 그룹화 된 연속 된 문자의 배열로 문자열을 분할

Split a string into an array based on runs of contiguous characters

그것은 기본적으로 연속 된 문자의 배열로 문자의 단일 문자열을 분할거야 - 그래서 예를 들면 :

지정된 입력 문자열

'aaaabbbbczzxxxhhnnppp'

는 [ 'BBBB', 'C', 'ZZ', 'XXX', 'HH', 'NN', 'PPP'AAAA ']

배열 될 것 내가 들어 왔 가장 가까운입니다 : 실제로 좀/그렇다고 작업을 수행

var matches = 'aaaabbbbczzxxxhhnnppp'.split(/((.)\2*)/g); 
    for (var i = 1; i+3 <= matches.length; i += 3) { 
     alert(matches[i]); 
    } 

...하지만 정말 .. 내가 분명히 너무 많은 분할하고있어 그렇지 않으면 내가 가진 가짜 항목을 제거 할 필요가 없습니다 것 + 3 색인 조작.

내가 원하는 것만으로 깨끗한 배열을 얻으려면 어떻게해야합니까?

감사합니다.

답변

7

당신의 정규식은 정상적으로 작동하지 않습니다. String.split이 아닌 String.match를 사용하십시오.

var matches = 'aaaabbbbczzxxxhhnnppp'.match(/((.)\2*)/g); 
+0

아, 나는 바보 같은 짓을해야한다는 것을 알고있었습니다. 감사! – kman

관련 문제