使用REGEX匹配两个HTML标记之间的所有代码

时间:2010-09-01 14:00:18

标签: html regex dreamweaver replace

我正在寻找一个贪婪的RegEx匹配来替换</title></head>之间的许多HTML文件中的所有文本(我已经加载了JavaScript文件以最小化http请求的数量) )。

我用谷歌搜索了它,但大多数解决方案似乎对我不起作用。 (这自然会让我认为我错了)

这是我目前的表达似乎不起作用: -

</title>([^<]*)</head>

我正在使用Dreamweaver 8搜索和替换。

在两个标签之间有多个包含各种javascript文件,例如: -      这取决于逐页。

我想用CSS / JavaScript包含的一致列表替换所有页面中这两个标签之间的所有内容。

3 个答案:

答案 0 :(得分:3)

如果DreamWeaver正则表达式支持预见断言:

</title>((?:(?!</head>)[\s\S])*)</head>

通常的警告“不适用于带正则表达式的HTML,这在某些时候会失败”适用。失败的地方可能是:

<script>var str = "something that contains </head>";<script>

<!-- a comment that refers to </head> -->

其他星座。

答案 1 :(得分:0)

您是否尝试使用http://www.regextester.com/之类的内容?你可以测试你的正则表达式吗?

您可以采取其他方法来“测试”您的案例。

答案 2 :(得分:0)

//if i consider you are using php as you are looking for regex
//regex : '#\<\title\>(.+?)\<\/head\>#s'
//in php

    $content_processed = preg_replace_callback(
      '#\<\title\>(.+?)\<\/head\>#s',
      create_function(
        '$matches',
        'return htmlentities($matches[1]);'
      ),
      $content
    );

// this will return content between the tag
相关问题