我有数百个名称类型为“xx S1E1 y1”、“xx S2E15 y2”、“xx S3E100 y3”的文件。
使用 RegexRenamer,我尝试在 E 之后添加前导零,但我无法这样做,它总是将前导零放在 E 之前。
(我需要 E1 变为 E001,E10 变为 E010,并且对 E100 不执行任何操作。)
例如对于那些“xx S1E[1-9] xx”的文件名,我正在尝试:
匹配:(E\d{1}) 替换:0$0
这导致 S1E1 变成 S10E1 而不是 S1E01。
有人知道如何使用 RegexRenamer 正确执行此操作吗?
尝试这个正则表达式
(?<=E)((?=\d(?!\d))|\d(?!\d\d))
并替换为
0$0
不确定 RegexRenamer 是否支持条件替换,但这里有一个解决方法。诀窍是,当
E
之后只有一位数字时,它会匹配两次(E
之后的零宽度字符以及后面的数字)。所以它可以插入两个0
。
当
E
后面有两位数字时,只匹配一次(其后面的数字),并且只插入一个0
。
如果超过 2 位数字,则不匹配任何内容。
参见测试用例