正则表达式模式 - 它是否正确以及其目的是什么?

正则表达式模式 - 它是否正确以及其目的是什么?

这个模式正确吗?

logPattern = ^NAME.log(-\d+)?$

这样做的目的是什么?

答案1

直接引用自正则表达式101- 用于测试和解释正则表达式的绝佳页面:

/^NAME.log(-\d+)?$/
  • ^断言字符串开头的位置
  • NAME逐字匹配字符 NAME(区分大小写)
  • .匹配任何字符(换行符除外)
  • log逐字匹配字符日志(区分大小写)

捕获组(-\d+)?

  • 量词:?零到一次之间,尽可能多的次数,按需回馈[贪婪]
  • -匹配字符 - 字面意思
  • \d匹配数字 [0-9]
  • 量词:+一次到无限次之间,尽可能多次,按需回馈[贪婪]
  • $断言字符串末尾的位置

所以基本上,这会搜索与模式匹配的字符串(特别是我认为的文件名)NAME.logNAME.log-123456789(对位数没有限制)。

\最有可能的是应该将其更改为匹配文字点而不是“任何字符”,因此应在表达式中的点之前添加反斜杠 ( )。

相关内容