替换一堆文件中的一堆行

时间:2014-03-23 12:30:54

标签: regex

假设我有几千个HTML文件,其中包含一些文本(文章,实际上)。此外,假设这些HTML中有各种各样的脚本,样式,计数器,其他废话,在实际文本之上。

我的任务是将一切从一开始就替换为某个标记 - 即,我们从<head>开始,以<div class="StoryGoesBelow">结束/ p>

<html>
<head>
</head>
<body>

块。

我可以做任何正则表达式吗? Vim的?还有其他编辑吗?脚本语言?

感谢。

1 个答案:

答案 0 :(得分:1)

最简单的正则表达式是(?s)\A.*?(?=<div class="StoryGoesBelow">)(假设您要保留<div>标记)。将其替换为您问题中的文字。

<强>解释

(?s)   # Allow the dot to match newlines
\A     # Anchor the search at the start of the string
.*?    # Match any number of characters, as few as possible
(?=<div class="StoryGoesBelow">)  # and stop right before this <div>

当然,如果文本<div class="StoryGoesBelow">也可能出现在实际标记之上的注释或文字字符串中,那么这将失败。