拆分四个字母数字

时间:2015-01-25 19:32:55

标签: python regex

我有以下字符串:

Final_Destination_8E8A-0760-5B06-68E0-68AA-7_feature_subtitle_HEB.srt

我需要将其拆分为_8E8A-,以获得Final_Destination。怎么做?以下是我到目前为止的情况:

re.split('_\d[A-Z]{4}-',s)

但是,这并不能准确捕获正确的字符串前缀。这只是一个例子,还有许多其他文件名,我需要匹配这种模式。

1 个答案:

答案 0 :(得分:1)

您的模式'_\d[A-Z]{4}-'匹配:下划线,然后是数字,然后是四个大写字母,然后是短划线。

当然是'_8E8A-'的匹配,开始没问题,但是在领先的下划线 - 然后是数字四个字母之后破折号 - 相反,它有E8A-只有3个字母,也不是四个,而不是所有字母。

因此,您可能希望使用r'_\d[A-Z0-9]{3}-'之类的模式 - 现在 符合您的示例。 (领先的r,对于"原始字符串",不是必须的,但它是一个很好的习惯,总是使用原始字符串作为RE模式。)