Я пишу регулярное выражение, которое должно извлекать следующие шаблоны;
вот регулярные выражения, которые я пытаюсь;
"\b[çc]+o+k+\sg+[üu]+z+e+l+\b"
: это работает на английском языке, но не в турецких символах "çok"
: находит «çok», но когда я пытаюсь "ç+o+k+"
не работает для «çççoookkk», он находит «çoookkk», "güzel"
: находит «güzel», но когда я пытаюсь "g+ü+z+e+l+"
не работает для «gggüüüzzzeeelll», "\b(c+o+k+)|(ç+o+k+)\s(g+u+z+e+l)|(g+ü+z+e+l+)\b"
: не работать должным образом "[çc]ok\sg[uü]zel"
: Я также попробовал это, чтобы получить шаблон «çok güzel», но не работает. Я думаю, что проблема может заключаться в использовании операторов регулярных выражений с турецкими символами. Я не знаю, как я могу это решить.
Я использую http://www.myregextester.com, чтобы проверить правильность моих регулярных выражений.
Я использую язык программирования Php, чтобы получить определенный шаблон из найденных твитов через Twitter Rest Api.
Благодаря,
Вы не указали, какой язык программирования вы используете, но во многих из них характерный класс \b
может использоваться только с простой кодировкой ASCII.
Внутри \b
обрабатывается как граница между \w
и \W
наборами.
В свою очередь, \w
равно [a-zA-Z0-9_]
.
Если вы не используете какие-либо причудливые метки пространства (вы не должны), рассмотрите возможность использования обычных классов пробелов ( \s
).
См. Эту таблицу (прокрутите вниз до раздела Word Boundaries ), чтобы проверить, поддерживает ли ваш язык Unicode для \b
. Если он говорит, «ascii» , то это не так.
В качестве побочного примечания, в зависимости от вашего языка программирования, вы можете использовать прямые кодовые обозначения Unicode вместо национальных символов.
Se также: utf-8 слово регулярное выражение в javascript
Дальнейшее чтение: