【发布时间】:2011-01-08 18:27:36
【问题描述】:
如何替换找到的模式中的子字符串,但保持其余部分不变?
(编辑:实际情况当然比下面的例子更复杂,我必须匹配 xml 标签中的出现。这就是我必须使用正则表达式的原因!)
假设我想将单词中出现的字母“X”更改为字母“Z”。
我想要
aaXaa aaX Xaa
成为
aaZaa aaZ Zaa
查找包含“x”的单词不是问题,如下所示:
[^X\s]X[^\s]
但是一个普通的 preg_match 替换了完整的匹配,我希望模式中除了“X”之外的任何东西都保持原样。
在 php 中实现这一点的最佳方法是什么?
【问题讨论】:
-
您的正则表达式与第二个单词末尾的 X 不匹配。
-
我很困惑,一个简单的替换不完全符合您的要求吗?替换匹配的模式,其余的保持原样。
-
抱歉冒昧了。我必须使用正则表达式,我的例子有点过于简单了!