使用正则表达式删除包含特定术语的整个标签

Removing entire tags containing a specific term using regex

我正在使用 phpmyadmin 修改一个大约有 500 html 页的数据库。 多个页面包含我要删除的 Facebook 像素或 Google 标签。

我认为最简单的方法是通过正则表达式搜索包含与 Facebook 或 Google 相关的某些表达式或术语的整个标签,并将其替换为空白。

一个例子是

<script>
    window.dataLayer = window.dataLayer || [];

    function gtag() {
      dataLayer.push(arguments);
    }
    gtag('js', new Date());
    gtag('config', 'G-XXXXXXXX');
  </script>

<script>
    (window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');
    fbq('init', '9999999999999999');
    fbq('track', 'salespage_xxxxxx');
  </script>

尽管它们都是独一无二的,但有些具有相同的代码或其他元素,因此可以识别它们中的每一个。

在 myphpadmin 运行 之前,我尝试使用 SublimeText3

来制定表达式

这是我第一次接触正则表达式,我发现它很吸引人,但即使按照一些参考资料我也无法匹配搜索。

我经过一番研究想出的表达方式是

<(.*)>[\s\S]face[\s\S]<\/(.*)>

我认为表达式 select 包含单词“face”的整个标签,但它没有找到任何东西。

我需要一些帮助。

如果可行,它将能够进行其他几项必要的更改。

此正则表达式将匹配包含 face 关键字的 <script> 标记

<(script)>(?:(?!<\/>|face)[\s\S])+face(?:(?!<\/>)[\s\S])+<\/>

参见示例:https://regex101.com/r/LfRlBV/1