【发布时间】:2011-11-15 22:26:33
【问题描述】:
我已经使用正则表达式很长时间了,但不知何故,我设法从未遇到过这样的事情。
我希望在文件中执行一些批量搜索/替换操作,我需要在类似标签的元素中替换一些数据。例如,将<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);
但实际上我想做的只是模拟“用 X 替换标签 T 之间的文本”。
有没有办法做这样的事情?从本质上讲,我试图避免必须匹配所有周围的数据并在以后重新组装它。我只想用其他东西替换给定的匹配子表达式。
编辑: 数据不是 XML,尽管它看起来像标签元素。我知道比使用 RegEx 解析 HTML 和 XML 更好。 ;)
【问题讨论】:
-
需要更多信息 - 文档是某种标记吗?任何标签或只是特定的标签?标签或特定模式中的任何内容?