我有一個字符串,我想要匹配和替換的子字符串。Python替換不會替換值,因爲我期望
movie.2002.german.720p.x264-msd...
我想刪除x264-blblxcv
。這條線不能按預期工作。
title = title.replace('.x264-\S+','')
我有一個字符串,我想要匹配和替換的子字符串。Python替換不會替換值,因爲我期望
movie.2002.german.720p.x264-msd...
我想刪除x264-blblxcv
。這條線不能按預期工作。
title = title.replace('.x264-\S+','')
str.replace()
不不支持正則表達式。您只能用該方法替換文本文本,並且您的輸入字符串不包含文字文本.x264-\S+
。
使用re.sub()
method做你想做什麼:
import re
title = re.sub(r'\.x264-\S+', '', title)
演示:
>>> import re
>>> title = 'movie.2002.german.720p.x264-msd...'
>>> re.sub(r'\.x264-\S+', '', title)
'movie.2002.german.720p'
另外,分區上.x264-
與str.partition()
:
title = title.partition('.x264-')[0]
omg ....謝謝你做到了。 非常感謝你和一個愉快的週末 –
@ Gutz-Pilz記得接受答案,如果你認爲它適合你的需求... –
str.replace
將不接受正則表達式作爲輸入。也許你想re.sub
。
import re
title, pattern = "movie.2002.german.720p.x264-msd...", re.compile("\.x264-\S+")
print pattern.sub('', title) # or re.sub(pattern, '', title)
輸出
movie.2002.german.720p
如果你想刪除部分從'.x264'開始,你可以使用statem如下所示:
title=title[:title.find('.x264')]
'str.replace' * does *像它應該那樣工作(就像它在作爲文檔聲明一樣) - 即使你不理解它。對於已建立的API,請謹慎處理此類索賠。 – user2864740