我想用另一个正则表达式模式替换一个正则表达式模式。正则表达式:用另一个替换一个模式
st_srt = 'Awake.01x02.iNTERNAL.WEBRiP.XViD-GeT.srt'
st_mkv = 'Awake.S01E02.iNTERNAL.WEBRiP.XViD-GeT.mkv'
pattern = re.compile('\d+x\d+') # for st_srt
re.sub(pattern, 'S\1E\2',st_srt)
我知道使用S\1E\2
这里是错误的。我使用\1 and \2
的原因是为了获得值01 and 02
并在S\1E\2
中使用它。
我所需的输出是:
st_srt = 'Awake.S01E02.iNTERNAL.WEBRiP.XViD-GeT.srt'
那么,什么是实现这一目标的正确方法。
你不能用另一个替换正则表达式正则表达式,你正在使用正则表达式来替换另一个字符串的字符串。非常重要的区别。相信我,使用正则表达式来处理* other * regexes是你不需要的噩梦。 – 2012-03-30 21:22:44
@JustinMorgan:感谢您的输入,但比用正则表达式替换另一个正则表达式还是使用基于正则表达式的解决方案来实现我所需的输出更为正确。 – RanRag 2012-03-30 21:24:50
我认为你的意思是你想在你的搜索字符串中捕获一个组,并在替换字符串中使用该组。 – alan 2012-03-30 21:26:43