这是我抓取的字符串的一小部分:
SEPVALAjazz(音乐)SEPVALC5.59SEPVALAlatin(music)SEPVALAcountry(music)SEPVALC6.70SEPVALArock(music)SEPVALC5.89SEPVALAdance(music)SEPVALAworld(music)SEPVALC6.70
我用正则表达式操作了字符串以插入“SEPVALA”和“SEPVALC”值。我希望删除文本中出现的模式“SEPVALA”和“(music)SEPVALA”之间的字符串。在上面的示例中,这将删除“latin”和“dance”。
期望的结果是:
SEPVALAjazz(音乐)SEPVALC5.59SEPVALAcountry(音乐)SEPVALC6.70SEPVALArock(音乐)SEPVALC5.89SEPVALAworld(音乐)SEPVALC6.70
我目前正在实施的代码是:
$pattern="/SEPVALA(.+?)\(音乐\)SEPVALA/";
$replacement="SEPVALA";
$newstring=preg_replace($pattern, $replacement, $originalstring );
但是,这会删除太多的字符串,因为正则表达式引擎会拾取第一个“SEPVALA”并从这一点向前删除所有内容,直到“(音乐)SEPVALA” (应该这样做!)我需要一种从“向后扫描”的方法(music)SEPVALA"删除有问题的文本并在下一个"SEPVALA"处停止,然后继续前进到"(music)SEPVALA"的下一个匹配项,依此类推。或任何其他方法来实现这一点。非常感谢。