2015-02-03 2 views
1

Я новичок в php, и у меня проблема с preg_replace. Я использую PHP версии 5.3.2 и у меня есть эта строка кода:preg_replace не работает, как я ожидаю

$minYear = preg_replace("/(\s)|(now)/g", "", $minYear); 

Перед этой строки кода, $minYear имеет строку now-6 в нем.

После этой строки кода $minYear является пустой строкой. Я ожидаю, что он будет -6

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

Что я делаю неправильно?

+0

Примечание: 5.3.2 довольно старая. Вся ветвь 5.3 равна eol. Если вы не находитесь на debian или rhel (или другом дистрибутиве, который по-прежнему отправляет обновления безопасности), я настоятельно рекомендую обновить. – Rangad

+0

С моей точки зрения, к сожалению, – Graham

ответ

3

В PHP-регулярном выражении нет флага g, поскольку замена всегда является глобальной. Вы также можете удалить ненужную группировку из своего регулярного выражения.

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

$minYear = preg_replace('/\s|now/', "", $minYear); // -6 
+1

ах-ха - спасибо – Graham

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