我有多个HTML文件,我必须删除其中的一些行。在
我需要删除的行在开头和结尾都没有关键字,除了脚本标记,但是我不想删除这些文件中的所有脚本标记。在
我需要删除的HTML部分示例:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
你认为有可能吗?如果有,怎么办?在
更新
我对下面的@ARJMP解决方案做了一些修改,但是它再次返回相同的文件,而没有删除regex中的analytics标记。在
Regex通过@ARJMPhttps://regex101.com/r/rWLZRD/1正确
为什么regex不减法?在
^{pr2}$
这里有一个regex解决方案,尽管regex不是最好的方法,但是考虑到您非常简单的用例,这可以用来解决您的问题。在
检查脚本标记后跟
var _gaq = _gaq
,并以第一个出现的</script>
结尾的正则表达式https://regex101.com/r/rWLZRD/1
好的,所以您还需要对多个文件执行此操作,您可以使用一个脚本遍历一个文件列表并应用regex。此脚本还将生成{file}.backup,因为它修改原始文件。在
^{pr2}$您还可以使用类似argparse的命令行脚本,该脚本可以接受命令行上的文件名列表,提供创建或不创建备份的选项,等等,但这超出了这个答案的范围。在
相关问题 更多 >
编程相关推荐