我正在尝试使用 php 中的正则表达式从字符串中删除两个字符之间的所有内容,包括这两个字符。我尝试使用此页面上的答案,所以现在我的 php 文件中有一行如下所示:
$message = preg_replace('\[[^\]]*]', '', $message);
问题是我收到此错误:
警告:preg_replace() [function.preg-replace]:分隔符不能是字母数字或反斜杠
我怎样才能解决这个问题?
PHP中的正则表达式需要分隔:
$message = preg_replace('/\[[^\]]*]/', '', $message);
查看此文档。
]
另外作为旁注,如果它是字符类中的第一个字符,则不需要转义结束:
$message = preg_replace('/\[[^]]*]/', '', $message);
(在这种情况下是否更具可读性是有争议的。但很高兴知道。)
这是我的解决方案:让左右标记都是引号字符。此 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>" );