通过删除除最后一个匹配之外的点并忽略第一个字符来更改正则表达式和文件名

时间:2017-01-16 05:34:03

标签: regex

我正在使用python3,我正在尝试将文件重命名设置为正确。 我正在使用带有先行的正则表达式来匹配除最后一个之外的点:

\.(?=.*\.)

这似乎工作正常,我用破折号替换点。所以:

some.other.file.is.here.txt ##=> some-other-file-is-here.txt

但我忘记了隐藏的文件!

之类的东西
.passwords

变为

-passwords

我一直试图让正则表达式忽略任何第一个字符,但我不明白。

请帮忙。

1 个答案:

答案 0 :(得分:2)

试试这个:

(?<=\w)\.(?!\w+$)

演示:https://regex101.com/r/CRp3b0/4

(?<=\w) - 正面看.后面是单词字符。

(?!\w+$) - 负面展望.后面没有最后一个字。