匹配多行正则表达式中的最小并发行数

时间:2015-04-28 18:04:30

标签: regex pattern-matching

我正在寻找一种模式,可以让我识别包含单词列表的文档中的一系列文本。以此文本为例。

property
subject
recipe
newsletter
news
match
reply
bulletin
joke
annual
greeting
accepted
puzzle
march
meeting
din
order
alert
printer
thursday
case
chicago
member

此类文本通常会出现在垃圾邮件正文中的HTML中间。每行总是一个单词。这些单词总是用英语,所以我不必担心uff-8字符。这些单词是为了混淆贝叶斯过滤器,但它们应该很容易匹配。

我正在寻找一种方法来连续匹配几行。像这样的简单正则表达式将匹配一行:

/^\w+$/

现在,我希望能够找到至少20条匹配的线或更多。我怎么做?它看起来像这样吗?

/^\w+${20,}/

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

你很亲密。您需要将括号内的表达式分组,以便量词将应用于整个表达式,而不仅仅是前一个字符。您还需要将换行符本身放入正则表达式中。

/(^\w+$\n){20,}/

根据您使用的语言,您可能还需要添加m(多行)修饰符,以便^$匹配开头和结尾行,而不是整个输入字符串。

/(^\w+$\n){20,}/m

DEMO