1

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

<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>
4

2 回答 2

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>
于 2013-07-05T10:24:12.390 回答
1

在正则表达式中,星号*是一个量词,表示匹配零次或多次。
我想你想匹配任何东西,一次或多次。你用.+. 当然你希望它不贪婪,所以最终的模式是.+?.

  • .: 匹配任何东西
  • +: 表示匹配一次或多次的量词
  • ?:+后面?是匹配不贪婪的方法

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

<h1><img src="view/image/.+?\.png" alt="" /> <?php echo preg_quote($heading_title); ?></h1>
  • 我们需要避开点\.png
  • 我们将用于preg_quote()正确转义$heading_title变量中的正则表达式保留字符
于 2013-07-05T10:03:27.583 回答