Regex только с: цифры, буквы и акценты

Мне нужно отфильтровать строку, чтобы вернуть только «цифры, буквы и буквы с акцентами», используя PHP.

Я пробовал много разных регулярных выражений, и я не мог.

Самое близкое, что я получил, было:

$string = 'Você está bem? 123 # ! @ ...';
echo preg_replace('/[^\w\s+$]/', '_', $string);

// Return: Voc__ est__ bem_ 123 _ _ _ ___
// But I need to return: Você_está_bem_123 _ _ _ ___

Кто-нибудь может мне помочь? Я пытался решить это часами, даже ища другие вопросы здесь.

1

Решение

Добавить /u модификатор:

$string = 'Você está bem? 123 # ! @ ...';
echo preg_replace('/[^\w\s+$]/u', '_', $string);
^

Увидеть это демо IDEONE

Подробнее о /u модификатор в документации регулярных выражений SO:

Шаблонные и предметные строки рассматриваются как UTF-8.

7

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector