2013-03-02 6 views
0

정규 표현식 작성에 약간의 도움이 필요합니다.정규 표현식이 T로 시작하는 모든 문자열과 일치합니다

T.으로 시작하고 .으로 끝나는 문자열의 모든 하위 문자열을 찾아야합니다 (이 경우 해당 하위 문자열은 숫자입니다). 그 문자열은 고유해야합니다. 예를 들어

:

T.220431.2 = 1.16363965404949 
    T.220431.1 = 1.16363965404949 
    T.3923331.2 = 0.335752950772576 
    T.3923331.1 = 0.335752950772576 
    T.4125531.2 = 0.335752950772576 
    T.4125531.1 = 0.335752950772576 

내가 배열 {220431, 392331, 4124431}

어떤 아이디어를 얻으려면? 사전에

감사합니다,

편집 : 나는 반대표의 톤을 얻고 있기 때문에, 그냥 내가 ^[T]\.[0-9]+[\.]를 사용하려고 않았다고 말하고 싶어하지만 나를 위해 작동하지 않았다. 나에게 쉽게 가자, 나는 단지 여기에서 배우려고 노력하고있다. ...

+1

내가 T''주위에 괄호를하는 이유를 볼 수 없습니다. –

+0

처음에는 괄호없이 시도했지만 작동하지 않으므로 대괄호를 추가하면 문제가 해결 될 수 있다고 생각했습니다. Btw는 답장을 보내 주셔서 감사 드리며 나를 투표하지 않으 셨습니다 :) – r3x

+2

'var regex =/\ bT \. (\ d +) \ ./ g, match, result = []; while ((match = regex.exec (string))/* 결과 목록에서 사용할 수있는 결과가 * /'(Too Localized로 닫히도록 투표 한 경우, edit() : 참고 : 스택 오버플로 이전 코드 블록에서 보이지 않는 너비 문자를 추가했습니다. 올바른 코드를 얻으려면 독자가이를 제거하기 위해 연습하십시오. –

답변

1

정규 표현식은 /\bT\.(\d+)\./g입니다. 내 정규식이 작동하지 않는 이유는 문자열의 시작 부분에있는 공백을 고려하지 않았기 때문입니다.

어쨌든,이 정규 표현식을 사용하면 필요한 숫자로 부분 문자열을 얻은 다음 join()을 사용하여 모든 것을 병합합니다.

답변 해 주셔서 감사합니다.

1

$를 정규식에서 제거 하시겠습니까? 분명히 당신은 일치하는 전체 라인을 arent.

+1

http://regexpal.com/ 다양한 정규 표현식을 시험해보기 –

+0

링크와 팁을 주셔서 감사합니다. – r3x

+0

"$"는 거기에 있으면 안됩니다. 내가 왜 추가했는지 모르겠습니다. 그 말로는, 정규 표현식은 여전히 ​​작동하지 않고 나는 여전히 NULL을 얻고 있습니다. – r3x

1

정규 표현식과 마찬가지로 비행 물을 얻을 수있는 무한한 해결책이 있습니다. 아래 main.js에서 parseValues(...) 기능을 찾으십시오.

jsFiddle은 여기에 있습니다 : http://jsfiddle.net/uwe_guenther/rYSwx/

index.html을

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <div id='output'></div> 
    <script src='main.js'></script> 
</body> 
</html> 

main.js

(function (document) { 
    function parseValues(values) { 
     var results = []; 
     var regex = /T\.(\d+)?.*/; 
     var len = values.length; 
     var i; 
     var result; 
     for (i = 0; i < len; i++) { 
      result = values[i].replace(regex, '$1'); 
      if (result) { 
       if (results.indexOf(result) < 0) { 
        results.push(result); 
       } 
      } 
     } 
     return results; 
    }; 

    function main() { 
     var values = [ 
      'T.220431.2 = 1.16363965404949', 
      'T.220431.1 = 1.16363965404949', 
      'T.3923331.2 = 0.335752950772576', 
      'T.3923331.1 = 0.335752950772576', 
      'T.4125531.2 = 0.335752950772576', 
      'T.4125531.1 = 0.335752950772576' 
     ]; 
     var results = parseValues(values); 
     var output = document.getElementById('output'); 
     var len = results.length; 
     var i; 
     for (i = 0; i < len; i += 1) { 
      output.innerHTML += results[i] + '<br/>'; 
     } 
    }; 

    main(); 

})(document); 
관련 문제