Удалите все ненужные символы из строки английских слов и китайских символов

Есть ли какая-либо функция preg_replace (или любой другой метод) для удаления всех ненужных символов из строки английских слов и китайских символов. Ненужные символы включают в себя все специальные символы (включая подчеркивание) и цифры. Обратите внимание, что я не хочу удалять пробелы и связанные дефисы.

Например:

Ввод: "我来到北京清华大学! Эй, я Мэтт - @ * + = 123 45 6 7 890 .._my-you"

Вывод: "我 来到 北京 清华大学 эй, я Мэтт мой-ты"

1 ответ

Решение

Попробуйте это регулярное выражение:

[!@*+=._]|(?<=\s)-(?=\s)|\d

также поместите в этот блок все, что вы хотите удалить [!@*+=._]

демонстрация

Источник выборки:

$re = '/[!@*+=._]|(?<=\s)-(?=\s)|\d/u';
$str = '我来到北京清华大学 ! hey i am matt - @ * + = 123 45 6 7 890 .._my-you';
$subst = '';

$result = preg_replace($re, $subst, $str);

echo $result;
Другие вопросы по тегам