2011-03-03 3 views
26

나는 이런 식으로 사용 될 수 | "OR 연산자"같은 논리 연산자가 알고있다.정규 표현식 로직 및 또는

관련, 알렉산더

+0

중복 http://stackoverflow.com/questions/469913/regular-expressions-is-there-an-and-operator – kjy112

답변

34

이 땅과 세계가 포함되어있는 경우는, 그렇게, 다른 후 하나를 포함

/(?=.*earth)(?=.*world).*/ 

그러나 그것은 아니다 전혀 and 연산자처럼. or은 단어 중 하나만 포함되어있는 경우 주문이 필요하지 않으므로 수행 할 수 있습니다. 둘 다 갖고 싶다면 주문을 표시해야합니다.

+3

나는 hackish 두 번째 버전을 호출 할 것 - 반대로, 특히 더 두 가지 조건이 관련되어 있기 때문에 순차적 인 미리보기가 훨씬 더 직관적이라고 생각합니다. –

+0

그 정규식은 매우 좋지 않은 것처럼 보입니다.'/^(?=.*? earth) (? =. *? world) /'더 좋을 것입니다. – Walf

3

이 질문은 질문하고 여기에 대답했다 : 직접 "및"연산자 없다

Regular Expressions: Is there an AND operator?

,하지만 당신은 표현의 테스트를 계속하고 두 번째를 보장 할 수 있습니다 표현도 일치합니다. (확장 정규식 구문을 사용하여)

earth.*world|world.*earth 

짧은 대안은 다음과 같습니다 :

3

두 가지 테스트를 수행합니다. 첫 번째 테스트가 실패하면 두 번째 테스트는 자바 스크립트에서 실행되지 않습니다. 예 :

var hasBoth = /earth/i.test(aString) && /world/i.test(aString); 
+1

항상 편리하지 않습니다, 한 정규 표현식을 사용하여 이것을하는 방법을 알고 좋을 것입니다 –