我想编写一个 spamassassin 规则来捕获垃圾邮件。该规则会发现邮件中出现的一些不良词语。例如,这是一封电子邮件:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vehicula nec eros et consectetur. Integer iaculis consectetur nisi sed feugiat. Praesent accumsan ipsum ac ante porttitor, ut fringilla libero venenatis. Sed porttitor imperdiet dignissim. Integer consectetur, nulla eu aliquet elementum, nisl lectus lobortis nisi, in pretium sem dui in ligula.
文本有六个换行符。脏话是“imperdiet”、“iaculis”和“nec”。我正在写一条规则:
/(?=.*imperdiet)(?=.*iaculis)(?=.*nec)/im
但这不起作用。只有当一行中出现脏话时,它才起作用。 如何匹配整个字符串?
最佳答案
(?=[\s\S]*imperdiet)(?=[\s\S]*iaculis)(?=[\s\S]*nec)
你可以尝试这种方式,它不需要修饰符。或者你也可以使用修饰符 s
==> DOTALL
关于regex - 在perl正则表达式中匹配多行中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28479620/