我有一个xml文件(称之为module.xml),如下所示在编辑器中打开,如Notepad ++ / Geany:
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="head">
<action method="addItem"><type>skin_js</type><name>module/js/jquery.js</name></action>
<action method="addItem"><type>skin_js</type><name>module/js/module-slider.js</name></action>
<action method="addItem"><type>skin_css</type><name>module/module.css</name></action>
<action method="addItem"><type>skin_js</type><name>module/js/module-video.js</name></action>
<action method="addItem"><type>skin_js</type><name>module/js/nicEdit-latest.js</name></action>
</reference>
<reference name="left">
<block type="module/subscribe" name="module.left.subscribe" template="module/left-sidebar.phtml" />
</reference>
<reference name="right">
<block type="module/subscribe" name="module.right.subscribe" template="module/right-sidebar.phtml" before="-" />
</reference>
<reference name="top.links">
<action method="addLink" translate="label title" module="module" ifconfig="module/settings/quicklinks">
<label>Module Title</label>
<url>module</url>
<title>Module Title</title>
<prepare>true</prepare>
<urlParams/>
<position>99</position>
</action>
</reference>
<reference name="footer_links">
<action method="addLink" translate="label title" module="module" ifconfig="module/settings/quicklinks">
<label>Module Title</label>
<url>module</url>
<title>Module Title</title>
<prepare>true</prepare>
<urlParams/>
<position>99</position>
</action>
</reference>
</default>
<module_index_index>
<reference name="content">
<block type="module/list" name="module_list" template="module/list.phtml" />
</reference>
</module_index_index>
<module_create_index>
<reference name="content">
<block type="module/list" name="module.create">
<action method="setTemplate"><template>module/create.phtml</template></action>
</block>
</reference>
</module_create_index>
</layout>
现在我想仅在module/
仅包含mycompany/module/
个文件名的标记和属性中将.phtml
替换为template
,即<template>
属性和ID Comp RYear Category Amount
1 1st Comp 2012 Elect 30000
2 1st Comp 2012 Compu 76000
3 1st Comp 2013 Elect 35000
4 2nd Comp 2012 Elect 50000
5 2nd Comp 2012 Comp 100000
6 2nd Comp 2012 Maint 18000
的内容标签
如何使用正则表达式执行此操作?在正则表达式中选择性查找/替换时,我没有想法。
答案 0 :(得分:1)
请注意,这适用于格式正确的xml文件。
您可以使用正则表达式(?=.*\.phtml)module\/
并替换为mycompany/module/
。
此:
(?=.*\.phtml)
是一个积极的先行:它将确保正则表达式在行中匹配。 module\/
是要用/
上的转义替换的字符串。