PHP-搜索和替换中间的内容
我想搜索特定的字符串/模式并将其删除。该模式从以下内容开始:PHP-搜索和替换中间的内容,php,regex,replace,Php,Regex,Replace,我想搜索特定的字符串/模式并将其删除。该模式从以下内容开始: <!DOCTYPE 我想移除它,以及介于两者之间的任何东西。它也不应该区分大小写 我尝试了str_replace()函数,但它没有删除中间内容 感谢您的帮助。这是preg\u replace的一个用例。正则表达式是我们的朋友: $txt = preg_replace("#<!DOCTYPE(.*?)\]>#sim", "", $txt); $txt=preg#u replace(“##sim”,”,$txt);
<!DOCTYPE
我想移除它,以及介于两者之间的任何东西。它也不应该区分大小写
我尝试了str_replace()
函数,但它没有删除中间内容
感谢您的帮助。这是preg\u replace的一个用例。正则表达式是我们的朋友:
$txt = preg_replace("#<!DOCTYPE(.*?)\]>#sim", "", $txt);
$txt=preg#u replace(“##sim”,”,$txt);
此处的(.*?
与中最短的字符串匹配。而“
是替代品
但是你确定
]>
是寻找终止符的正确字符串吗?请展示你的尝试…字符串跨越多行吗?@Arvin:是的,字符串跨越多行。@Stefan:我尝试了“str_replace”(“,”,“,$txt)”删除内容,但仍然保留了中间的内容。谢谢Mario的帮助。基本上,我正在抓取一个XML文件,其中包含“@MercuryTerminal:啊,好的。我不确定它是用于DTD还是仅用于HTML DOCTYPE声明。--无论如何,如果您有时间并且想了解更多关于regexps的有用性,请尝试或使用这里的一个好工具:谢谢。现在就开始阅读。=)
$txt = preg_replace("#<!DOCTYPE(.*?)\]>#sim", "", $txt);