我的preg_replace替换了我的整个字符串,而不是表达式所适合的位。
代码:
http://beta.yapaste.com/bd
这就是我要替换的内容:
<table id=\"post24100391\" style=\"width: 100%;\" class=\"p4\" >
感谢您的帮助。
答案 0 :(得分:1)
是.....正则表达式匹配整个表....它将用$ replace替换整个字符串。
你要替换的是什么?
您可以使用捕获替换...
preg_replace("/(<table.*?>).*(<\/table>)/","\$1$replace\$2},$str);
或者你可以使用部件周围的非捕捉组来取代......
e.g。
preg_replace("/(?:<table.*?>).*(?:<\/table>)/",$replace,$str) //not tested, though
编辑以响应OP更改
preg_replace("/<table.*?>/",$replace,$str);
您想使用延迟捕获*?