PHP многобайтовые строки регулярное выражение - PullRequest
3 голосов
/ 12 августа 2011

У нас есть регулярное выражение для удаления не буквенно-цифровых символов, кроме «#», «&» и «-».Вот как это выглядит:

preg_replace('/[^a-zA-Z0-9#&-*]/', '', strtolower($title));

Теперь нам нужно поддерживать традиционные китайские строки, и вышеуказанная функция не будет работать.Как я могу реализовать аналогичную функциональность для традиционного китайского.

Спасибо,

Ответы [ 2 ]

3 голосов
/ 12 августа 2011

Используйте u модификатор:

preg_replace(`/[^a-zA-Z0-9#&-*诶]/u`, '', $string);

Кстати, не используйте strtolower(), потому что это сломает вашу строку.Используйте mb_strtolower():

mb_strtolower($string, 'UTF-8');
0 голосов
/ 12 августа 2011

Вы пробовали mb_ereg_replace () вместо preg_replace ()?Это могло бы помочь.

http://www.php.net/manual/en/function.mb-ereg-replace.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...