2010-03-05 3 views

답변

5

Mark의 대답은 다른 시간에 @를 제외해야 할 필요가 있기 때문에 꽤 효과가 없을 것이라고 생각합니다. 이 시도 :

^(?=(([^@]*@){0,2}[^@]*$))

편집 : 마크는 그의 대답을 고정 , 우리가 지금 동일해야합니다. 또한 고정되었습니다.

+0

너무 멋지게 최적화되었습니다. – gnarf

+0

고마워요! 당신의 대답은 이것과 어떻게 다릅니 까? (? = [^ @] * [@] {, 2} [^ @] * $) – teggy

+1

@teggy : 귀하의 버전에서 수량 한정어'{, 2}'는 직전의 원자,'[@]'이므로'xx @@ xx'와 일치하지만'xx @ xx @ xx'와는 일치하지 않습니다. –

0

: 예를 들어,이 작업을 수행하는 많은 방법이있다

0

I : 당신은 @ 세 번 발생하지 않도록 할 수있는 부정적 예측의 주장을 사용

/^(?=([^@]*@){,2}[^@]*$)./ 
+0

Lookahead는 Mark와 같이 고정되어야합니다. –

+0

이 작동하지 않습니다. 자바 스크립트를 사용하고 있습니다. text = 'aa @@'; regex =/^ (? = (([^ @] * @) {, 2} [^ @] * $))/ console.log (text.match (regex)); –

관련 문제