正则表达除最后一个之外的所有字符

时间:2011-12-29 13:42:42

标签: regex

这是我的字符串:50.00.00..00.00

我希望匹配除最后一个之外的所有.,因此在替换后我最终会使用50000000.00

有人可以帮我吗?

2 个答案:

答案 0 :(得分:25)

\.(?=.*\.)

匹配一个点(\.),其后面必须有另一个点((?=.*\.))。

(这假设正则表达式引擎支持lookahead,例如PCRE,Python等。)

答案 1 :(得分:2)

所以你没有指定你的正则表达式工具,引擎等。你可以用例如sed(仅在上一个dot之后始终有两位数且始终存在最后dot时才有效):

echo "50.00.00..00.00" | sed 's/\.//;s/\(..\)$/.\1/'

但还有其他几种方法,例如与前瞻性正则表达式(如果你支持)。

HTH