Regex 从文件名中删除未按预期工作的字符串

Regex 从文件名中删除未按预期工作的字符串,regex,rename,Regex,Rename,我正在尝试从一组文件中删除一些子字符串。这些文件具有以下名称 0_00008.obj 0_00009.obj 0_00010.obj 0_00011.obj 我希望他们是 8.obj 9.obj 10.obj 11.obj 我尝试过这样使用重命名 rename '/s/0_0+//;' *.obj 但什么都没有发生? 我已经检查了正则表达式字符串,看起来它可以正确匹配我要删除的内容,所以,我是否使用了错误的重命名?您可以使用此模式 ^[0_]* 存在0_00000.obj吗?不,第一个

我正在尝试从一组文件中删除一些子字符串。这些文件具有以下名称

0_00008.obj
0_00009.obj
0_00010.obj
0_00011.obj
我希望他们是

8.obj
9.obj
10.obj
11.obj
我尝试过这样使用
重命名

rename '/s/0_0+//;' *.obj
但什么都没有发生?
我已经检查了正则表达式字符串,看起来它可以正确匹配我要删除的内容,所以,我是否使用了错误的重命名?

您可以使用此模式

^[0_]*


存在
0_00000.obj
吗?不,第一个是0_00001.objOh好的,那么代码狂热者提供的应该可以工作。我使用的模式有什么问题吗?我不知道
重命名
的正则表达式引擎的具体细节,但是使用一个正则表达式可视化工具,例如,可以帮你解决很多问题。首先,您似乎试图匹配正斜杠,但示例数据没有正斜杠。尾随分号也是一样,它也不起作用。我尝试了
重命名的/^[0_]*/;'0_000002.obj
@jjcasmar您使用的是哪种正则表达式风格?为什么
s
标志?如果您的输入跨越行,您需要使用
m
标志。我不明白refex味道是什么意思。我正在archlinux中使用
rename
perl脚本。
s/…
是因为我在一些示例中发现了类似的情况()