Убрать все символы, кроме латиницы, кириллицы и запятой - PHP
1,00
р.
р.
подскажите регулярку, которая должна вырезать любые символы, кроме запятой (оставаться должны только кириллица и латинница). Сделал наброски , вроде работают , но запятую не знаю как оставить. $key_words=mb_strtolower($key_words) $key_words=preg_replace("/[^a-zа-я\s]/iu","",$key_words)
Ответ Если должны остаться только буквы (кириллица + латиница) и запятая, то код должен иметь вид: preg_replace("/[^а-яёa-z,]/iu", '', $target) UPD: Стоит обратить внимание, что регулярное выражение выше соответствует только части кириллицы, а именно русскому алфавиту. Вообще, понятие кириллица существенно шире, и включает символы, используемые не только в современном русском алфавите, но и в ряде других славянских языков. Кириллические Unicode символы можно увидеть, например, здесь. Тоже самое, касается и латиницы. Формально, помимо символов английского алфавита (/[a-z]/i), туда входит еще множество других символов, например, ñ из испанского алфавита. Регулярное выражение выше, соответствует только символам английского алфавита, а не всем символам латиницы. UPD2: Если же вы действительно хотите оставить в строке символы, которые формально входят в латиницу или кириллицу, то вы можете использовать следующий код: preg_replace("/[^,\p{Cyrillic}\p{Latin}]/ui", '', $target) Это регулярное выражение оставляет очень большой набор символов (например, кириллические символы ѥѧѭ). Не думаю, что его вообще стоит использовать, но для тех, кто формально относится к понятиям латиница и кириллица, оно может оказаться интересным.