例如,如果我想preg_replace HTML元素的标题:
$str = preg_replace('/title=\"([^\"]+)\"/', 'foo', $str);
请不要给我这个具体例子的其他解决方案(非正则表达式),这只是一个例子。我需要一个适用于任何正则表达式的解决方案。
答案 0 :(得分:7)
如果您想将部件与preg_replace
匹配,但只是部分替换其他部件,则有两种选择。
您只需重新插入匹配的部分(包含在捕获组中,然后使用$1
和$3
):
$str = preg_replace('/(title=")([^"]+)(")/', '$1foo$3', $str);
或者您使用assertions:
$str = preg_replace('/(?<=title=")([^"]+)(?=")/', 'foo', $str);