如何为日期后面的字符串制作正则表达式

时间:2018-11-07 15:07:18

标签: regex regex-lookarounds regex-group

我想创建一个用于修饰字符串的正则表达式

Daily_Batch_summary_001_SS11_20181107165728.log
Monthly_Batch_summary_002_SS11_20181107165811.log

现在我知道 _Batch_summary_ _SS11_ 总是很常见。

我最终得到的正则表达式是 _Batch_summary_001_SS11_(\d+).log$ 现在我不知道在正则表达式的开头用什么来表示,正如您所看到的“每日”,“晨”这个词可能会改变。 001 002 也在发生变化,因此我也需要一些技巧

我们将不胜感激,如果我在解释我的问题时遗漏了一些东西,我会道歉。

1 个答案:

答案 0 :(得分:2)

您可以将_以外的任意数量的字符与[^_]*进行匹配,并且要匹配1个或多个数字,请使用\d+

^([^_]*)_Batch_summary_(\d+)_SS11_(\d+)\.log$

请参见regex demo

详细信息

  • ^-字符串的开头
  • ([^_]*)-第1组:除_以外的任何0+字符([^_]是一个与字符相反的否定字符类,但与该类中定义的字符不符)
  • _Batch_summary_-文字字符串
  • (\d+)-第2组:一个或多个数字
  • _SS11_-文字字符串
  • (\d+)-第3组:一个或多个数字
  • \.-一个点
  • log-文字字符串
  • $-字符串的结尾。