Php Preg_replace不删除找到的标记之间的文本
我试图使用preg_replace删除字符串中的所有标题。它是wordpress摘录功能的一部分,删除帖子正文中的所有Php Preg_replace不删除找到的标记之间的文本,php,regex,wordpress,preg-replace,Php,Regex,Wordpress,Preg Replace,我试图使用preg_replace删除字符串中的所有标题。它是wordpress摘录功能的一部分,删除帖子正文中的所有Title标记,因为它们会打断段落的流动 因此,目标是在字符串中,例如 “这里有一些信息。一个新的部分这里有一些更多的信息。” 我的输出字符串是 “这里是一些信息。这里是一些更多信息。” 我很确定我的正则表达式是正确的。但是preg_replace似乎没有删除标题标记 $regex=array( '\(.*?)\', '\(.*?)\', '\(.*?)\', '\(.*?)\'
Title
标记,因为它们会打断段落的流动
因此,目标是在字符串中,例如
“这里有一些信息。一个新的部分这里有一些更多的信息。”
我的输出字符串是
“这里是一些信息。这里是一些更多信息。”
我很确定我的正则表达式是正确的。但是preg_replace似乎没有删除标题标记
$regex=array(
'\(.*?)\',
'\(.*?)\',
'\(.*?)\',
'\(.*?)\',
'\(.*?)\',
'\(.*?)\'
);
preg_替换($regex,,$text);
标签中的文本保持不变,即
“这里有一些信息。一个新的部分这里有一些更多的信息。”
编辑:没有意识到我的查询缺少分隔符。与其他问题类似,但不会通过谷歌搜索“delimiter”错误找到它们,因为没有收到错误。由于当时无法访问ftp,因此未在网站上打开Php错误报告。只需通过wordpress主题编辑器进行编辑。可以想象其他人也会有同样的问题,这个问题可能会成为他们将来的相关参考。您的示例代码没有收到任何警告吗? 以下各项工作正常
$text = "<p>Here is some info.</p><h2>A new section</h2><p>Here is some more info.</p>";
$regex = array (
'#\<h1[^]]*\>(.*?)\</h1\>#',
'#\<h2[^]]*\>(.*?)\</h2\>#',
'#\<h3[^]]*\>(.*?)\</h3\>#',
'#\<h4[^]]*\>(.*?)\</h4\>#',
'#\<h5[^]]*\>(.*?)\</h5\>#',
'#\<h6[^]]*\>(.*?)\</h6\>#'
);
$replaced = preg_replace($regex, '', $text);
echo $text;
echo PHP_EOL;
echo $replaced;
$text=“这里有一些信息。一个新的部分这里有一些更多信息。”;
$regex=数组(
'#\(.*?)\#',
'#\(.*?)\#',
'#\(.*?)\#',
'#\(.*?)\#',
'#\(.*?)\#',
'#\(.*?)\#'
);
$replaced=preg_replace($regex,,$text);
echo$文本;
echo PHP_EOL;
替换了$echo;
编辑
检查是否禁用了php警告可能
preg_replace($regex,$1',$text)代码>?不,那也不行。我很确定我的整个preg_替换实际上是因为某种原因失败的。当我将其设置为$text=preg\u replace($regex,,$text)时代码>我什么都没有得到警告来自没有正则表达式分隔符,这是您答案中的哈希标记(仅供澄清)