使用preg_replace而不破坏id信息
我正在尝试破解我正在开发的 WordPress 模板中的一些侧边栏代码。基本上,我已经在输出缓冲区中捕获了我需要的内容,并在其上运行正则表达式,以用我需要的代码替换位。问题是我的正则表达式知识对于我需要实现的目标来说有点短。
我遇到的问题是这样的:
$output = preg_replace('/<\/li><li id=".*?" class="widget-container/', '<a href="top">Top</a></li><li><li id="[item from that find]" class="widget-container/', $input);
目前代码我可以找到我需要的东西,但它破坏了那些 id 属性,因为我无法捕获它们。
我确信有一种方法可以捕获并在替换中使用它,但我找不到任何东西可以告诉我我需要什么,或者我是否对 preg_replace 采取了错误的方法。
我如何使用它来更改代码而不破坏这些唯一的 ID?
干杯伙计们!
I'm trying to hack about some sidebar code in a Wordpress template I'm developing. Basically I've captured what I need in an output buffer and I'm running regex over it to replace bits with the code I need. Problem is my regex knowledge is just a bit short on what I need to achieve.
The problem I'm having is as such:
$output = preg_replace('/<\/li><li id=".*?" class="widget-container/', '<a href="top">Top</a></li><li><li id="[item from that find]" class="widget-container/', $input);
At the moment as the code stands I can find what I need but it destroys those id attributes as I can't capture them.
I'm sure there is a way I can do this to capture and use it in the replacement but I can't find anything that tells me what I need or if I'm taking the wrong approach with preg_replace.
How can I use this to change code without destroying those unique ids?
Cheers guys!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要使用反向引用。使用 ( ) 捕获 id,然后使用 $1 引用捕获...见下文:
You need to use a back reference. Capture the id using ( ) and then reference the capture with $1 ... see below:
将要匹配的模式包含在 ( ) 中并使用 $1
wrap the pattern you want to match in ( ) and use $1