2016-09-19 9 views
0

재귀 정규식이 일치하는내가 <code>/<?=>|[^sw]|w+/g</code>를 사용하여 일치

  • < =>
  • =>
  • 단어/문자

그러나 나는 또한 a 어떤 단어가 될 수있는 K(a,...)를 일치시킬/letter와 ...도이 최종 정규식에서 일치 할 수 있습니다. 그래서 실제로 재귀 적이어야합니다.

그래서 새로운 정규식

  • < =>
  • =>
  • 단어/문자
  • K (A, ...)

... 일치 일치해야합니다

  • < =>
  • 는 =>이
  • 단어/문자
  • K는 (A는, ...)

등등 ...

나는 확실하지 않다 이것이다

  • 경우 가능한.

    나는 당신이 일치하는 정규 표현식 아래를 사용할 수있는 무언가

  • +2

    자바 스크립트 정규식 당신이 제안하고 같은 파서를 작성하는 더 나은 순환 패턴을 지원하지 않습니다. – anubhava

    +0

    http://xregexp.com/ library를 사용해 볼 수 있습니다. – Karpak

    +0

    @Karpak xregexp가 왜 도움이됩니까? –

    답변

    0

    아래의 자바 스크립트에서 사용되는 정규식은 재귀를 사용하지 않습니다.
    표준 자바 스크립트 정규식에서는 사용할 수 없으므로

    모든 )이 끝에 있다는 사실을 이용합니다.
    주석의 예제 문자열에서와 같이.

    var str = "ps<=>q=>pb=>K(ab,K(b,K(c,p => q))) not)"; 
     
    
     
    var re = /\w+(?:\([^()]+)+[)]+|<?=>|\w+(?=<?=>)/g; 
     
    
     
    var matchArray = []; 
     
    var m; 
     
    
     
    while (m = re.exec(str)) { 
     
        matchArray.push(m[0]); 
     
    } 
     
    
     
    console.log(matchArray);

    관련 문제