이 정규식을 어떻게 더 간단하게 만들 수 있나요?
P粉710454910
P粉710454910 2024-02-26 18:49:18
0
2
341

다음 정규 표현식이 있습니다:

으아악

다음 단어와 일치합니다:

으아악

하지만 다음 단어는 아닙니다:

으아악

이 정규식은 순서에 상관없이 3단어(WORD1WORD2WORD3)가 포함된 문자열을 찾을 때 일치합니다.

더 많은 단어로 동일한 작업을 수행하고 싶지만 문제는 단어 수에 따라 정규식의 크기가 기하급수적으로 증가한다는 것입니다. 이 문제를 해결하기 위해(크기가 기하급수적으로 증가하지 않고) 이 정규식을 구성하는 방식을 단순화할 수 있습니까?

P粉710454910
P粉710454910

모든 응답(2)
P粉663883862

모든 문자열을 반복하고 모든 키워드를 포함하지 않는 모든 문자열을 필터링하면 됩니다.

(더 간결한 버전은 아래 코드 조각에서 찾을 수 있습니다)

으아악

해 보세요:

으아악 으아악
P粉998100648

각 단어에 대해 긍정적인 예측을 사용할 수 있습니다.

으아악

아래의 보다 성능이 뛰어난 버전은 시작 앵커를 지정하고 미리보기를 확인한 후 단일 문자만 일치시킵니다. OP의 요청에 따라 이 기술은 matching,而不适用于extraction에서만 작동합니다.

으아악

정방향 예측은 게이트와 같습니다. 괄호 안에 지정된 일치 항목이 존재하는 경우에만 계속되지만 일치하는 항목을 소비하거나 캡처하지 않습니다. 길이는 항상 0입니다. 각 단어 앞에 .*가 있는지 확인하기 위해 "미리 살펴보는" 경우 단어의 순서는 중요하지 않습니다. 각 단어가 참이면 매칭을 위해 아무 것도 사용하지 않고 진행합니다. p>

내용이 일치하는지에만 관심이 있다면 두 표현의 유일한 실질적인 차이점은 걸리는 시간입니다. 콘텐츠에 필수 단어 3개 중 2개만 있다고 가정해 보겠습니다. 표현을 해석하는 소프트웨어가 시도가 쓸모없다는 것을 인식하지 못하는 한, 첫 번째 위치에서 "실패" 세 단어를 찾은 다음 두 번째 위치에서 "실패"를 시도하는 방식으로 마지막 위치에 도달할 때까지 계속됩니다. 위로. ^,只会在第一个位置进行检查,节省了其他不必要检查的时间。当您只是寻找内容中是否存在所有单词的真/假答案时,从末尾删除 *를 지정하면 일부 불필요한 캡처를 방지할 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!