我想创建一个用于修饰字符串的正则表达式
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
也在发生变化,因此我也需要一些技巧
我们将不胜感激,如果我在解释我的问题时遗漏了一些东西,我会道歉。
答案 0 :(得分:2)
您可以将_
以外的任意数量的字符与[^_]*
进行匹配,并且要匹配1个或多个数字,请使用\d+
:
^([^_]*)_Batch_summary_(\d+)_SS11_(\d+)\.log$
请参见regex demo。
详细信息
^
-字符串的开头([^_]*)
-第1组:除_
以外的任何0+字符([^_]
是一个与字符相反的否定字符类,但与该类中定义的字符不符)_Batch_summary_
-文字字符串(\d+)
-第2组:一个或多个数字_SS11_
-文字字符串(\d+)
-第3组:一个或多个数字\.
-一个点log
-文字字符串$
-字符串的结尾。