header_用regexp检查奇怪的行为

vi4fp9gy  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(99)

我在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

有人能解释一下为什么会这样吗?以及如何解决这个问题。谢谢大家。

68bkxrlz

68bkxrlz1#

你的正则表达式是错误的。finance*意味着financ后跟任何内容(例如,字母e的零次或多次出现)。你大概是说

/^From:.*finance/ REJECT

结尾的通配符(您输入错误的地方)是多余的;正则表达式匹配,即使它没有消耗整个输入字符串。但需要说明的是,“任何东西”的正则表达式是.(任何字符)*(零次或多次)。

相关问题