正则表达式 - 如何用下划线替换文件名中的句点

时间:2012-03-08 13:41:20

标签: regex

我正在构建一个正则表达式,允许我用下划线(_)替换文件名中的句点(。)。

示例:将filename.doc替换为filename_doc

我在Expresso中玩过一个游戏,并且已经知道它会像。\ w {3,4}那样 - 获取3或4个字符的扩展名,例如doc,docx,xl​​s,xlsx等。

但我无法弄清楚如何只更换期间并保留延期。

2 个答案:

答案 0 :(得分:4)

你必须逃脱.标志。尝试使用以下正则表达式:

\.(\w{3,4})$

并将其替换为:

_$1

$1()

中包含匹配的字符串

答案 1 :(得分:0)

仅替换最后一个点:

perl:  $str =~ s/\.([^.]+)$/_$1/

php: $str = preg_replace('/\.([^.]+)$/', "_$1", $str);

替换所有点:

perl: $str =~ s/\./_/g;

php: $str = preg_replace('/\./', '_', $str);