나는 새로운 언어를 배우고 있으며 나는 aprox로 DB를 만들었습니다. 2500 단어 및 2500 단어의 예. 기본적으로 각 단어에 대한 사진을 보여주는 PHP/MySQL 웹 UI를 만들었습니다. 클릭하면 단어의 오디오가 재생됩니다. 단어가 나오는 모든 예제와 일치하는 팝업 창을 트리거하는 상황에 맞는 메뉴가 있습니다.정규식을 사용하여 단어의 접두사를 무시하면서 전체 단어를 일치
나는 REGEXP '[[:<:]]$word[[:>:]]'
을 사용하고 있지만 필자가 단어에 몇 가지 접두어/접미사를 붙였습니다 (영어 접미사와 같은). 이 문제를 해결하기위한 한 가지 방법은 정규식이 여전히 단어와 일치하도록 문장이 시작되는 단어에 하이픈을 넣는 것입니다. 그러나이 방법이 언어가 철자를 처리하는 방법에 완전히 부합하지는 않습니다. 의미가 완전히 다르기 때문에 필터링하고 싶지 않은 단어 조합도 있습니다. 여기에 구체적인 내용이 없으면 일치 단어가 "WORD"이고 접두사와 접미사가 같은 문단을 사용하여 pre1
, pre2
... 및 suf1
, suf2
...과 필터하지 않으려는 항목이 있습니다. 예에서 xxx
1. Xxx xxx WORDsuf1 xxx xxx xxx.
2. Xxx xxx WORDsuf2 xxx xxx xxx.
3. Xxx xxx pre1WORDsuf1 xxx xxx xxx.
4. Xxx xxx WORD xxx xxx xxx.
5. Xxx xxx pre1WORD xxx xxx xxx.
6. Xxx xxx pre2WORDxxx xxx xxx xxx.
7. Xxx xxx xxxWORDxxx xxx xxx xxx.
8. Xxx xxx pre1WORDxxxsuf1 xxx xxx xxx.
9. Xxx xxx pre1xxxWORDsuf1 xxx xxx xxx.
10. Xxx xxx xxxWORDxxx xxx xxx xxx.
나는 1, 2, 3, 4, 5 일치하고 싶지만 난 그냥 추가 OR 절을 시작, 6, 7, 8, 9 일치 (10)를 원하지 않는 이상 예를 들면 다음과 같습니다.
REGEXP '[[:<:]$word[[:>:]]|[[:<:]]$word$suffix[[:>:]]'
이 예외는 하나의 예외에는 문제가 없지만 여러 예외가 있으면 문제가됩니다.
나는 틀림없이 정규 표현식에 익숙하지 않은데, 내가 다룰 수있는 대부분의 것들은 내가 읽어야 할 간단한 예제들이다. 짧고 효율적인 정규 표현식으로이 작업을 수행 할 수 있습니까?
'pre1WORDsuf2'이 (가) 유효한 일치입니까? – Braj
예 pre1WORDsuf2가 일치합니다. 기본적으로 나는 접두사와 접미사의 목록을 무시할 필요가 있으며 루트에 추가 된 유일한 것들이므로 모든 조합이 일치합니다. – user3787683
답변과 데모를보십시오. – Braj