2016-11-05 1 views
-2

문자열에서 문자가 두 번 이상 나오는지 확인하는 정규식이란 무엇입니까? 예 : 'aab'은 허용되지만 'aaa'또는 'aaba'는 허용되지 않습니다.문자열에서 X 번 이상 문자가 발생하는지 확인하는 정규식

preg_match() 함수가 유효한 입력 (반복되는 문자가 3 개 미만인 경우)에 대해 1을 리턴하고 0을 리턴하도록 유효 입력 (3 자 미만의 문자가있는 경우)에서만 일치시키는 방법이 있습니까?

감사합니다.

+0

사용'substr_count ($ STR, "A")'대신 정규식의. – Mohammad

+0

문자열이'aabaabaa '이면 반복이 결코 2가 아니기 때문에 허용되는 것입니까? – chris85

+0

지금 지정되었습니다. "aabaabaa"는 받아 들여서는 안됩니다. – liberty

답변

1

이 정규식은 3 번 반복되는 문자를 찾을 수 있습니다. 더 많은 것을 얻으려면 3 개를 반복해야하기 때문입니다.

(.)\1{2} 

정규식 데모 : https://regex101.com/r/WmUPWW/1

PHP 사용법 :

foreach(array('aaa', 'aab') as $string) { 
    if(preg_match('/(.)\1{2}/', $string)) { 
     echo $string . ' doesnt match :(' . "\n"; 
    } else { 
     echo $string . ' matches'. "\n"; 
    } 
} 

PHP 데모 : https://eval.in/672382

+1

데모 좋아해. 푸딩에있는 증명은 그대로 ;-) –

+0

preg_match가 존재하면 그것을 반환하는 방법이 있습니까? 여러 표현을 반복하고 싶기 때문에 묻습니다. – liberty

+0

@liberty 그것이 무엇을하는지, 그것이 조건부에 들어가는 이유입니다. https://eval.in/672387 매뉴얼에 따르면 :'preg_match()는 주어진 주제와 패턴이 일치하면 1을 반환하고, 그렇지 않으면 0을 반환하고, 에러가 발생하면 거짓을 반환합니다 .'. 또는 변수에 반환을 저장하는 데모, https://eval.in/672389. – chris85

관련 문제