我在使用正则表达式的monit语法中做错了什么?

问题描述 投票:0回答:2

在我的monitrc中,我写了下一篇:

check file mysite.com-access.log with path /var/log/apache2/mysite.com-access.log
        if content = "\/1.[01]\" 4(\d){2}" then alert

但是systemctl状态monit.service说我的语法有错误:

extsites monit[19043]:  * Starting daemon monitor monit
extsites monit[19043]: /etc/monit/monitrc:305: syntax error '\d'
extsites monit[19043]:    ...fail!

之前我把"\/1.[01]\" [45](\d){2}",但语法错误在'[45]'。

我究竟做错了什么?我所有的正则表达都在https://regex101.com/

更新:我将我的字符串更正为if content = "^\/1\.[01]\" [45](\d){2}" then alert但语法错误仍然存​​在。

linux monit
2个回答
0
投票

当我正确时,monit使用POSIX正则表达式语法。

所以按照这个描述:https://www.regular-expressions.info/posixbrackets.html ...你可以用\d取代[:digit:]

这对我来说不合逻辑,但也许monit没有得到“\d”的权利

在monit-documentation中的"content"-examples之后,双引号应该不是问题


0
投票

看来我们应该使用单引号而不是双引号。

© www.soinside.com 2019 - 2024. All rights reserved.