1
我已经使用正则表达式的年龄,但不知怎的,我设法永远不会遇到这样的事情。正则表达式替换匹配的子表达式(而不是其他)?
我正在寻找一个文件中的一些批量搜索/替换操作,我需要替换标签类元素中的一些数据。例如,将<DelayEvent>13A</DelayEvent>
转换为<DelayEvent>X</DelayEvent>
,其中X
可能每个都不相同。
我这样做目前的方法是这样的:
$new_data = preg_replace('|<DelayEvent>(\w+)</DelayEvent>|', '<DelayEvent>X</DelayEvent>', $data);
我可以缩短这个有点:
$new_data = preg_replace('|(<DelayEvent>)(\w+)(</DelayEvent>)|', '${1}X${2}', $data);
但实际上所有我想要做的是模拟一个“替换文本标签T与X之间“。
有没有办法做这样的事情?实质上,我试图阻止必须匹配所有周围的数据并在以后重新组装。我只想用别的东西替换给定的匹配子表达式。
编辑:数据不是XML,尽管它看起来像标签一样。我知道比用RegEx解析HTML和XML更好。 ;)
更多信息 - 是文档某种标记?任何标签或只是特定的?标签或特定模式中的任何内容? – meouw