这个模式正确吗?
logPattern = ^NAME.log(-\d+)?$
这样做的目的是什么?
答案1
直接引用自正则表达式101- 用于测试和解释正则表达式的绝佳页面:
/^NAME.log(-\d+)?$/
^
断言字符串开头的位置NAME
逐字匹配字符 NAME(区分大小写).
匹配任何字符(换行符除外)log
逐字匹配字符日志(区分大小写)
捕获组(-\d+)?
- 量词:
?
零到一次之间,尽可能多的次数,按需回馈[贪婪] -
匹配字符 - 字面意思\d
匹配数字 [0-9]- 量词:
+
一次到无限次之间,尽可能多次,按需回馈[贪婪] $
断言字符串末尾的位置
所以基本上,这会搜索与模式匹配的字符串(特别是我认为的文件名)NAME.log
或NAME.log-123456789
(对位数没有限制)。
\
最有可能的是应该将其更改为匹配文字点而不是“任何字符”,因此应在表达式中的点之前添加反斜杠 ( )。