Регулярное выражение не работает должным образом с турецкими персонажами

Я пишу регулярное выражение, которое должно извлекать следующие шаблоны;

  • «çççoookkk gggüüüzzzeeelll» (это означает vvveeerrryyy gggoooddd с турецкими персонажами «ç» и «ü»)
  • «ccccoookkk ggguuuzzzeeelll» (это значит одно и то же, но с английскими символами «c» и «u»)

вот регулярные выражения, которые я пытаюсь;

  • "\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.

    Благодаря,

    Related of "Регулярное выражение не работает должным образом с турецкими персонажами"

    Вы не указали, какой язык программирования вы используете, но во многих из них характерный класс \b может использоваться только с простой кодировкой ASCII.

    Внутри \b обрабатывается как граница между \w и \W наборами.
    В свою очередь, \w равно [a-zA-Z0-9_] .

    Если вы не используете какие-либо причудливые метки пространства (вы не должны), рассмотрите возможность использования обычных классов пробелов ( \s ).

    См. Эту таблицу (прокрутите вниз до раздела Word Boundaries ), чтобы проверить, поддерживает ли ваш язык Unicode для \b . Если он говорит, «ascii» , то это не так.

    В качестве побочного примечания, в зависимости от вашего языка программирования, вы можете использовать прямые кодовые обозначения Unicode вместо национальных символов.

    Se также: utf-8 слово регулярное выражение в javascript

    Дальнейшее чтение:

    • Отличная статья об использовании символов Unicode в регулярных выражениях
    • Статья для границ слов
    • Список турецких кодов Unicode