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()