使用regex通配符搜索vqmod获取映像文件名

时间:2013-07-05 09:44:08

标签: regex opencart vqmod

我想从opencart管理面板中的h1 title元素中删除图标。我正在尝试使用星号作为文件名的通配符,但它没有用完。 文档说搜索数据:

<h1><img src="view/image/*.png" alt="" /> <?php echo $heading_title; ?></h1>

应该是一个有效的正则表达式模式,虽然我不熟悉正则表达式。如何在vqmod中正确执行此操作?

<file name="admin/view/template/*/*.tpl">
    <operation>
        <search regex="true" position="replace"><![CDATA[
            <h1><img src="view/image/*.png" alt="" /> <?php echo $heading_title; ?></h1>
        ]]></search>
        <add><![CDATA[      
            <h1><?php echo $heading_title; ?></h1>
        ]]></add>
    </operation>
</file>

2 个答案:

答案 0 :(得分:1)

在正则表达式中,星号*是一个量词,表示匹配零次或多次。
我想你想要匹配任何东西,一次或多次。您可以使用.+执行此操作。当然你不想要它,所以最终的模式是.+?

  • .:匹配任何内容
  • +:量词,表示匹配一次或多次
  • ?+后跟?表示匹配ungreedy

让我们在代码中应用以上内容:

<h1><img src="view/image/.+?\.png" alt="" /> <?php echo preg_quote($heading_title); ?></h1>
  • 我们需要在\.png
  • 中转义点
  • 我们将使用preg_quote()$heading_title变量中正确转义正则表达式保留字符

答案 1 :(得分:1)

在vQmod中,正则表达式仍然需要有分隔符。您最好只使用<h1>的通用搜索,因为您将其设置为标题标题。

<file name="admin/view/template/*/*.tpl">
    <operation>
        <search regex="true" position="replace"><![CDATA[~<h1>.*?</h1>~]]></search>
        <add><![CDATA[<h1><?php echo $heading_title; ?></h1>]]></add>
    </operation>
</file>