2014-12-03 1 views
0

나는 단어 목록을 가지고있다. 그래서 출력은 다음과 같습니다정규식 별도로

Sup 
Past 
P.S. Away 
Lapse 
Space 

정규 표현식에이 시도 :

/ps/ // checks for ps as a combination 
/p{1}.s{1}/ // Selects the needful but not sup or space (s preceding p) 
+0

당신이에서 자신을 작성한 코드를 게시하시기 바랍니다 수 이것을 해결하려고 유혹한다. 그래서 당신이 작성한 코드로 문제를 해결할 수 있도록 돕는 것이지 코드 작성 서비스는 아닙니다. –

+0

로리 - 시도한 솔루션을 추가 편집했습니다 – zeetit

답변

2

이런 식으로 뭔가 사용에 postive 봐 이것은 미리

/^(?=.*p)(?=.*s).*$/mi 

Regex Example

  • 0123을은 문자열 시작 부분에 정규 표현식을 고정합니다.

  • (?=.*p) postive look ahead. 문자열이 포함되어 있는지 확인합니다. p

  • (?=.*s) postive look ahead. 문자열이 포함되어 있는지 체크한다 s

  • .* 문자열

+0

감사합니다 nu11p01n73R. 1 시간 이상 고투하고 있었다. 이 정규식 패턴에 대해 자세히 알아 보려면이 – zeetit

+0

@ var17에 대해 자세히 알아보십시오. 언제나 환영합니다. 감사합니다. – nu11p01n73R

1
^(?=.*p)(?=.*s)[a-z .]+$ 

본다는 데모를 시도의 끝에서 무엇을

  • $ 앵커 정규식과 일치합니다.

    http://regex101.com/r/yR3mM3/33

    var re = /^(?=.*p)(?=.*s)[a-z .]+$/gmi; 
    var str = 'Sup\nPast\nP.S. Away\nTest\nSet\nLapse\nSpace'; 
    var m; 
    
    while ((m = re.exec(str)) != null) { 
    if (m.index === re.lastIndex) { 
    re.lastIndex++; 
    } 
    // View your result using the m-variable. 
    // eg m[0] etc. 
    } 
    
  • +0

    thanks vks. 좋은 – zeetit

    +0

    @ var17 당신을 환영합니다 :) – vks

    1

    정규식 OR 논리 연산자를 사용하여 다른 | 방법.

    /^(?:.*p.*s.*|.*s.*p.*)$/mi 
    

    또는

    /^.*(?:p.*s|s.*p).*$/mi 
    

    DEMO

    +0

    고마워 Avinash하지만 입력 문자 (ps) 크기는 사용자 입력에 따라 다를 수 있습니다. 모든 순열을 형성하는 것은 약간 번거로운 일일 수 있습니다. 저를위한 해결책 인 것처럼 보입니다. – zeetit