我在header_checks中有这样一行:
/^From:.*finance*./ REJECT
当我测试它时,它会很好地拒绝消息:
$ postmap -q "From: xxfinancexx" regexp:/etc/postfix/header_checks
REJECT
但是当我把字母E从finance这个词中去掉时,它也会拒绝它,尽管它不应该拒绝。
$ postmap -q "From: xxfinancxx" regexp:/etc/postfix/header_checks
有人能解释一下为什么会这样吗?以及如何解决这个问题。谢谢大家。
1条答案
按热度按时间68bkxrlz1#
你的正则表达式是错误的。
finance*
意味着financ
后跟任何内容(例如,字母e
的零次或多次出现)。你大概是说结尾的通配符(您输入错误的地方)是多余的;正则表达式匹配,即使它没有消耗整个输入字符串。但需要说明的是,“任何东西”的正则表达式是
.
(任何字符)*
(零次或多次)。