我试图从php中使用正则表达式的字符串中删除两个字符之间的所有内容,包括两个字符。我尝试在this page上使用答案,所以现在我的php文件中有一行看起来像这样:
$message = preg_replace('\[[^\]]*]', '', $message);
问题是我收到此错误:
警告:preg_replace()[function.preg-replace]:分隔符不能是字母数字或反斜杠
我该如何解决这个问题?
答案 0 :(得分:4)
PHP中的正则表达式需要分隔:
$message = preg_replace('/\[[^\]]*]/', '', $message);
另外作为附注,如果它是字符类中的第一个字符,则不需要转义结束]
:
$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>" );