使用php中的regex替换两个字符之间的所有内容

时间:2012-10-24 14:39:12

标签: php regex

我试图从php中使用正则表达式的字符串中删除两个字符之间的所有内容,包括两个字符。我尝试在this page上使用答案,所以现在我的php文件中有一行看起来像这样:

$message = preg_replace('\[[^\]]*]', '', $message);

问题是我收到此错误:

  

警告:preg_replace()[function.preg-replace]:分隔符不能是字母数字或反斜杠

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

PHP中的正则表达式需要分隔:

$message = preg_replace('/\[[^\]]*]/', '', $message);

查看this documentation

另外作为附注,如果它是字符类中的第一个字符,则不需要转义结束]

$message = preg_replace('/\[[^]]*]/', '', $message);

(在这种情况下,这是否更具可读性是值得商榷的。但是很高兴知道。)

答案 1 :(得分:0)

这是我的解决方案: 让左右标记都是引号char。此reg expr将查询字符串拆分为三个原子,这些原子将根据需要重新排列到输入字符串中。希望它有所帮助。

var _str = "replace 'something' between two markers" ;
document.write( "INPUT : " + _str + "<br>" );
_str = _str.replace( /(\')(.*?)(\')/gi, "($1)*some string*($3)" );
document.write( "OUTPUT : " + _str + "<br>" );