PHP разрешает только символы и пробелы UTF-8 - PullRequest
1 голос
/ 24 марта 2019

Я пытаюсь проверить строку в PHP с помощью регулярных выражений; он может содержать только буквы (включая латинские буквы, такие как «á», «õ» и т. д.) и пробелы.

Используя preg_replace('/\P{L}/u', '', $ str); Я избавляюсь от всего (включая пробелы), кроме латинских букв. Что мне нужно изменить в регулярном выражении, чтобы включить пробелы?

1 Ответ

1 голос
/ 24 марта 2019

Вы можете использовать

preg_replace('/[^\p{L}\s]+/u', '', $str);

Шаблон [^\p{L}\s]+ будет соответствовать 1 или более экземплярам любого символа, кроме буквы Юникод или пробела.Обратите внимание, что из-за модификатора u, \s будет распознавать любые символы пробелов Юникода.

См. Демонстрационную версию regex .

Подробности

Если у вас есть диакритические знаки и вы хотите их сохранить, выпридется добавить \p{M} к классу отрицанных символов, /[^\p{L}\p{M}\s]+/u.

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