我有以下字符串:
Final_Destination_8E8A-0760-5B06-68E0-68AA-7_feature_subtitle_HEB.srt
我需要将其拆分为_8E8A-
,以获得Final_Destination
。怎么做?以下是我到目前为止的情况:
re.split('_\d[A-Z]{4}-',s)
但是,这并不能准确捕获正确的字符串前缀。这只是一个例子,还有许多其他文件名,我需要匹配这种模式。
答案 0 :(得分:1)
您的模式'_\d[A-Z]{4}-'
匹配:下划线,然后是数字,然后是四个大写字母,然后是短划线。
不当然是'_8E8A-'
的匹配,开始没问题,但是不在领先的下划线 - 然后是数字四个字母之后破折号 - 相反,它有E8A-
只有3个字母,也不是四个,而不是所有字母。
因此,您可能希望使用r'_\d[A-Z0-9]{3}-'
之类的模式 - 现在 符合您的示例。 (领先的r
,对于"原始字符串",不是必须的,但它是一个很好的习惯,总是使用原始字符串作为RE模式。)