2014-01-16 4 views
2

Я хотел бы изменить все специальные символы в моей строке, но я хочу сохранить все акцентированные. Возможно ли с помощью preg_replace()?Как заменить все специальные символы, но сохраняя акценты

Мой текущий код:

preg_replace('/[^A-Za-z0-9\-]/', '', $string); 
+2

Здравствуйте Riskesh, эта тема не то же самое вашей темы. :) – Dimitri

+0

** @ Closevoters: ** дубликат, указанный выше, не является правильным. – HamZa

ответ

5

Try Unicode:

preg_replace('/[^\p{L}0-9\-]/u', '', $string); 

\p{L} является Unicode property, который соответствует всем буквам на любом языке, Unicode properties on php.net

+0

Эй, стема! Спасибо вам за хороший ответ! Это прекрасно! Если я не могу заменить & & единственную цитату, как я могу это сделать? – Dimitri

+0

Документация для PHP кажется более точной для этого вопроса: http://www.php.net/manual/en/regexp.reference.unicode.php –

+0

Спасибо вам всем за вашу помощь! – Dimitri

Смежные вопросы