2

我正在尝试使用命令行“重命名”来更改一些包含多个句点的文件名。例如:this.is.a.file.name.txt

环顾四周后,我发现了一些几乎可以让我到达那里的例子,但我似乎无法让它按要求工作。不用说,我是一个非常熟悉正则表达式的初学者。

我试过这个:

rename -v -n 's/\.(.+?)(?=\.)//' this.is.a.file.name.txt

结果是:

this.a.file.name.txt

我试图修改以下资源中的示例,但我被卡住了。 PHP正则表达式:选择除最后一次出现的所有 正则表达式不替换最后一次出现的匹配项

4

1 回答 1

5

由于几个原因,您的正则表达式不太正确。首先,您要替换空字符串的内容应该只是句点,而您正在从句点匹配下一个句点的所有内容并将其删除。另外,你只做一次。

您想要的正则表达式是/\.(?=.*\.)//g,它表示匹配一个句点,然后是任意数量的字符的零宽度断言和另一个句点,并尽可能多地执行此操作。

于 2013-02-03T22:28:34.953 回答