我想提一下,这是我第一次尝试与命名组合作。
我必须解析这些名称文件,并且为了方便起见,捕获这些组以便以后提取值。
22203_17053180_2020-05-13_TRAN.LET_002.pdf
22203_17053180_2020-05-13_AP_DK_M_002.pdf
22203_17053180_2020-05-13_AP_DK_M.pdf
我有一个想法,这是我的第一次尝试。
第一个月
x1c 0d1x的数据
但是现在我需要捕获下一个组,我们可以称之为<doctype>
组,它可以是TRAN.LET
或AP_DK_M
并且具有_002
的部分可以存在或不存在。
如果_002
存在,那么它是必需的。否则整个正则表达式应该仍然是好的。
后期编辑:
这个<doctype>
组是在日期的下划线和002的下划线之间定义的,如果存在的话,顺便说一下,这是一个随机的东西,我想它就像一个\d{3}。
1条答案
按热度按时间b91juud31#
您可以使用
字符串
参见regex demo。
^
-字符串的开头(?P<appcorresp>\d{5})
-组“appcorresp”:五位数_
-下划线(?P<appnumber>\d{8})
-组“appnumber”:8位数字_
-下划线(?P<date>\d{4}-\d{2}-\d{2})
-组“日期”:四位数,-
,两位数,-
和两位数_
-下划线(?P<doctype>.*?)
- Group“doctype”:除换行符字符以外的任何零个或多个字符尽可能少(?:_\d+)?
-_
和一个或多个数字的可选序列\.
-点\w+
-一个或多个单词字符$
-字符串结束。