PHP регулярное выражение - PullRequest
1 голос
/ 31 августа 2011

Я пытался использовать preg_replace для строки, но получаю неверный результат.

$string = "Da venerdì 26 agosto a lunedì 5 settembre 2011";
$string = preg_replace('/\p{L}+/s','',$string);

должен вернуть «26 5 2011», но возвращает «¬ 26 ¬ 5 2011»

* примечание у меня на локальном php сервере на Windows XP все работает нормально но в моем удаленном php-сервере на Debian он возвращает мне неверную строку

Вы можете мне помочь?

1 Ответ

2 голосов
/ 31 августа 2011

Вы хотите извлечь число из строки из того, что я вижу.

  • у вас есть проблемы с кодировкой ваших текстов. Эти символы должны быть UTF8, но они как-то облажались. Может быть они у вас из БД и таблицы БД не UTF8?
  • Если вы хотите извлечь все числа, не думайте, что строка состоит только из букв и цифр. Посмотрите на http://www.regular -expressions.info / unicode.html список поддерживаемых типов символов
  • используйте preg_replace("/[\s]+/", ' ', preg_replace('/[^0-9\s]/',' ',$string)); для удаления чего-либо, не являющегося числом, из строки и оставьте только один пробел между числами
...