远程播放PC上的视屏时, 播放器不认带有后缀的字幕文件. 比如:
[YYDM-11FANS][Hellsing_OVA][BDRIP][01][x264_AAC][720P][CD05817F].mp4
[YYDM-11FANS][Hellsing_OVA][BDRIP][01][x264_AAC][720P][CD05817F].RP-sc.ass
需要把字幕后缀.RP-sc
去掉.
import os
import re
root = 'subtitle'
for source in os.listdir(root):
target = re.sub(r'\][^\]]*ass', '].ass', source)
os.rename(os.path.join(root, source), os.path.join(root, target))
参考资料: Python正则表达式操作指南
. ^ $ * + ? { [ ] \ | ( )
我们首先考察的元字符是"[" 和 "]"。它们常用来指定一个字符类别,所谓字符类别就是你想匹配的一个字符集。字符可以单个列出,也可以用“-”号分隔的两个给定字符来表示一个字符区间。例如,[abc] 将匹配"a", "b", 或 "c"中的任意一个字符;也可以用区间[a-c]来表示同一字符集,和前者效果一致。如果你只想匹配小写字母,那么 RE 应写成 [a-z].
符在类别里并不起作用。例如,[akm
$
]将匹配字符"a", "k", "m", 或 "$
" 中的任意一个;"$
"通常用作元字符,但在字符类别里,其特性被除去,恢复成普通字符。
以用补集来匹配不在区间范围内的字符。其做法是把"^"作为类别的首个字符;其它地方的"^"只会简单匹配 "^"字符本身。例如,[^5] 将匹配除 "5" 之外的任意字符。
最重要的元字符是反斜杠""。 做为 Python 中的字符串字母,反斜杠后面可以加不同的字符以表示不同特殊意义。它也可以用于取消所有的元字符,这样你就可以在模式中匹配它们了。举个例子,如果你需要匹配字符 "[" 或 "",你可以在它们之前用反斜杠来取消它们的特殊意义: [ 或 \。
用 "" 开始的特殊字符所表示的预定义字符集通常是很有用的,象数字集,字母集,或其它非空字符集。下列是可用的预设特殊字符:
\d 匹配任何十进制数;它相当于类 [0-9]。 \D 匹配任何非数字字符;它相当于类 [^0-9]。 \s 匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。 \S 匹配任何非空白字符;它相当于类 [^ \t\n\r\f\v]。 \w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。 \W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]。
* 出现任意多次. + 出现至少一次. {m,n} 出现至少m次, 至多n次.
print 'foo\\bar'
print r'foo\\bar'
foo\bar foo\\bar