我想构建一个匹配的spamassassin
网址:
“通知安全密钥已过期”
和变体,在单词"has"
之前可以有1到3个单词且仍然必须匹配。
我一直在尝试和测试在线正则表达式工具。我使用了.\w
,但只能在单词"has"
之前只使用一个单词。我想要1到3个单词。
答案 0 :(得分:1)
要匹配单词“has”之前的1-3个单词,您可以使用(\w+ ){1,3}has
。
希望这已经回答了你的问题。这似乎就是你所要求的。
答案 1 :(得分:0)
这是一个正则表达式,匹配单词“key”和“has”之间的1到3个单词,这里是指向RegExr测试它的链接。我承认我不熟悉spamassassin
,但如果你需要一个正则表达式来匹配一行文本,那么这应该有效:
key(\b\s((\w+\b\s){1,3})has
使用大括号{1,3}
表示前一个标记(在本例中为组(\w+\b\s)
)必须至少匹配一次但不超过三次。 \b
令牌与单词边界匹配,\s
匹配任何空格。如您所知,\w
匹配任何字母数字字符。
如果需要,可以使用反向引用来提取组1,组1现在包含“key”和“has”之间的单词(以及它们周围的空白)。希望这有帮助!