1

我正在尝试使用 php 中的正则表达式从字符串中删除两个字符之间的所有内容,包括这两个字符。我尝试使用此页面上的答案,所以现在我的 php 文件中有一行如下所示:

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

问题是我收到此错误:

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

我怎样才能解决这个问题?

4

2 回答 2

4

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

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

查看此文档

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

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

(在这种情况下是否更具可读性是有争议的。但很高兴知道。)

于 2012-10-24T14:39:56.757 回答
0

这是我的解决方案:让左右标记都是引号字符。此 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>" );
于 2015-10-14T19:48:37.400 回答