Python:Regex从遵循特定模式的文件名中提取字符串

Python:Regex从遵循特定模式的文件名中提取字符串,python,Python,我有以下格式的文件名: <IndentNo>_<DocType>_<DocName>_<Date>_<Version>.<Extension> An Example: 1000023456_SOTR_FILE23_21102020_V1.pdf 我正在为每一类字符串寻找合适的regex模式。 接下来,我到目前为止运气不好 任何帮助都将不胜感激。请尝试: text = "<IndentNo>_<

我有以下格式的文件名:

<IndentNo>_<DocType>_<DocName>_<Date>_<Version>.<Extension>
An Example: 
1000023456_SOTR_FILE23_21102020_V1.pdf
我正在为每一类字符串寻找合适的
regex模式
。 接下来,我到目前为止运气不好

任何帮助都将不胜感激。

请尝试:

text = "<IndentNo>_<DocType>_<DocName>_<Date>_<Version>.<Extension>"
re.split("_|\.",text)
要使用正则表达式提取字符串的一部分,可以使用组

filename = '1000023456_SOTR_FILE23_21102020_V1.pdf'
match = re.match('(.*)_(.*)_(.*)_(.*)_(.*)\.(.*)', filename)
no, type, name, date, ver, ext = match.groups()
在这里:

*
是任意字符串

(.*)
是包含任何字符串的组

\。
将只匹配点,反斜杠用于转义点,因为默认情况下它在正则表达式中有特殊含义(它表示任何字符)

['<IndentNo>', '<DocType>', '<DocName>', '<Date>', '<Version>', '<Extension>']
indent, doctype, docname, date, version, extension = re.split("_|\.",text)
filename = '1000023456_SOTR_FILE23_21102020_V1.pdf'
match = re.match('(.*)_(.*)_(.*)_(.*)_(.*)\.(.*)', filename)
no, type, name, date, ver, ext = match.groups()