현재 사용자가 단어를 올바르게 입력했는지 확인하는 어휘 알고리즘을 프로그래밍 중입니다. 다음과 같은 상황이 있습니다. 단어에 대한 올바른 해결책은 "part1, part2"입니다. 사용자는 "part1"(답변 1), "part2"(답변 2) 또는 "part1, part2"(답변 3)를 입력 할 수 있어야합니다. 이제 사용자가 제공 한 문자열을 다음과 같이 자동으로 생성 된 정규식과 일치 시키려고합니다.
^(part1|part2)$
이것은 답변 1과 2만을 정확한 것으로 반환하지만 답변 3은 틀릴 것입니다. 나는 지금 비슷한 연산자가 있는지 궁금합니다. | 그 and/or
대신에 말합니다 either...or
.
누구 든지이 문제를 해결하도록 도울 수 있습니까?
1
정규 표현식은 이에 대한 최상의 솔루션이 아닐 수도 있습니다. 일반적인 문자열 방법을 사용합니다.
—
Felix Kling
이 문제는 잘못 지정되었습니다. 필요한 문자열 집합에 대한 정확한 문자열 비교만으로 패턴 일치를 사용하는 이유는 무엇입니까? 정규식 컴파일러가 Perl과 같은 방식으로 O (1) trie 구조로 대안을 최적화하지 않는 한, 대신 해시 멤버쉽에 대한 테스트를 수행해야합니다. 다른 정규식 엔진은 이것에 매우 영리하지 않습니다.
—
tchrist
@tchrist 유스 케이스는 MongoDB의의가 될 수
—
디르 압바스
$or
정규식 일치