lookahead 어설 션을 사용하여 특정 문자가 최대 한 번 특정 문자열에 존재하는지 확인합니다.Regex : lookahead 어설 션을 사용하여 문자가 특정 횟수만큼 존재하는지 확인합니다.
예를 들어 문자 하나 이상이 "@"를 최대 2 번 포함하고 있는지 확인하고 싶다고합시다. 미리 감사드립니다. 파이썬을 사용하면 중요합니다.
(?!.*@.*@.*@.*).*
lookahead 어설 션을 사용하여 특정 문자가 최대 한 번 특정 문자열에 존재하는지 확인합니다.Regex : lookahead 어설 션을 사용하여 문자가 특정 횟수만큼 존재하는지 확인합니다.
예를 들어 문자 하나 이상이 "@"를 최대 2 번 포함하고 있는지 확인하고 싶다고합시다. 미리 감사드립니다. 파이썬을 사용하면 중요합니다.
(?!.*@.*@.*@.*).*
Mark의 대답은 다른 시간에 @를 제외해야 할 필요가 있기 때문에 꽤 효과가 없을 것이라고 생각합니다. 이 시도 :
이^(?=(([^@]*@){0,2}[^@]*$))
편집 : 마크는 그의 대답을 고정 , 우리가 지금 동일해야합니다. 또한 고정되었습니다.
: 예를 들어,이 작업을 수행하는 많은 방법이있다
I : 당신은 @ 세 번 발생하지 않도록 할 수있는 부정적 예측의 주장을 사용
/^(?=([^@]*@){,2}[^@]*$)./
Lookahead는 Mark와 같이 고정되어야합니다. –
이 작동하지 않습니다. 자바 스크립트를 사용하고 있습니다. text = 'aa @@'; regex =/^ (? = (([^ @] * @) {, 2} [^ @] * $))/ console.log (text.match (regex)); –
너무 멋지게 최적화되었습니다. – gnarf
고마워요! 당신의 대답은 이것과 어떻게 다릅니 까? (? = [^ @] * [@] {, 2} [^ @] * $) – teggy
@teggy : 귀하의 버전에서 수량 한정어'{, 2}'는 직전의 원자,'[@]'이므로'xx @@ xx'와 일치하지만'xx @ xx @ xx'와는 일치하지 않습니다. –