Я изучаю новый язык, и я создал БД с прибл. 2500 слов и 2500 примеров слов. Я создал веб-интерфейс PHP/MySQL, в котором в основном отображаются изображения для каждого слова, и когда вы нажимаете на них, он воспроизводит звук слова. Существует также контекстное меню для запуска всплывающего элемента div, который соответствует и отображает все примеры, в которых встречается слово.
Я использую REGEXP '[[:<:]]$word[[:>:]]'
, но есть несколько префиксов/суффиксов слов, которые я хочу отфильтровать, которые не добавляют к слову реального значения (например, суффикс -ing в английском языке). Один из способов обойти это - поставить дефис в слове, где начинается аффикс, чтобы регулярное выражение по-прежнему соответствовало слову, но это не совсем верно для того, как язык обрабатывает правописание. Также есть разные сочетания слов, которые я не хочу фильтровать, потому что смысл совсем другой. Не вдаваясь в подробности, вот несколько псевдопримеров с совпадающим словом как просто «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, но я не хочу сопоставлять 6, 7, 8, 9, 10. Я начал просто добавлять предложения OR, например:
REGEXP '[[:<:]$word[[:>:]]|[[:<:]]$word$suffix[[:>:]]'
Это отлично работает для одного исключения, но с несколькими исключениями становится грязно.
По общему признанию, я довольно неопытен с регулярными выражениями, и большая часть того, что мне удается решить, - это простые примеры, которые мне нужно прочитать. Можно ли это сделать с помощью короткого и эффективного регулярного выражения?
pre1WORDsuf2
допустимым совпадением? - person Braj   schedule 13.07.2014