2012-01-28 58 views
0

我还没有在php中做正则表达式。关于正则表达式在php中

我需要用空字符('')替换三个反斜杠(\\\)。

因此,任何人都可以帮我解决这个问题在PHP?

例子:

  1. \\\与空( '')

  2. 取代\\\\替换\

感谢球员的答复,但它仍然是不工作。

+1

为什么正则表达式?正则表达式只有在你想保持长度大于3的反斜杠时才有意义。即删除\\\但保持\\\\。 – 2012-01-28 14:01:56

回答

2

这应做到:

preg_replace('/\\\\\\\\\\\\/', "\x00", $input) 

每个\需要转义为PHP作为\\并再次PCRE为\\\\,所以三个反斜线\\\\\\\\\\\\

你可能想用preg_quote,而不是工作:

preg_replace('/'.preg_quote('\\\\\\', '/').'/', "\x00", $input) 
+3

我认为OP的意思是空字符串'''',当他写»空字符« - 虽然我也被这个位弄糊涂 – knittl 2012-01-28 14:15:22

1

为什么不str_replace()

的模式是如此简单,str_replace()没有工作

$new = str_replace('\\\\\\', '', $old); 

检查手册http://php.net/manual/en/function.str-replace.php

+2

您需要模式字符串中的六个反斜杠。在你的版本中,第一对形​​成一个反斜杠,然后'\'嵌入一个单引号。那么没有字符串终止符。 – Borodin 2012-01-28 14:01:32