2010-09-06 4 views

ответ

21

К порту ereg_replace на preg_replace вам нужно поставить регулярное выражение между парой разделителем

Также ваш regx является [\] является недействительным использоваться для preg_replace как \ является отводящей закрытие класс угля ]

Правильный порт

preg_replace('/[\\\]/','',$theData) 

Кроме того, так как класс символ имеет только один символ не существует реальная потребность класса полукокса вы можете просто сказать:

preg_replace('/\\\/','',$theData) 

Поскольку вы заменить только один символ, используя регулярное выражение для этого не рекомендуется , Вы должны использовать простой замены текста с использованием str_replace как:

str_replace('\\','',$data); 
+1

. '/ \\\ /' приведет к выходу косой черты с помощью preg_replace, вам понадобится 4 обратных слэша –

+3

@ Yanick просто попробуйте –

+0

@Yanick, это не будет. 'preg_replace' видит это как/\\ /, что Обратите внимание, что '/ \\\\ /' также * правильно *, потому что \\ и \ могут кодировать обратную косую черту в строковом литерале. t \/не является escape-строкой строки. –

2
str_replace("\\","",$theData); 

Но я серьезно сомневаюсь, что вам нужно, что заменить на всех. скорее всего, вам понадобится другая операция.
Что это за замена?

0

Я использовал это СЭД для автоматической замены ereg_replace на preg_replace и поставить необходимые косую черту в не Предполагает нет \»в первом регулярном выражении

sed -i 's#ereg_replace("\([^"]*\)"#preg_replace("/\1/"#g' *.php 
Смежные вопросы