使用正则表达式将任意长度的浮点数字的字符串转换成百分数

在CSDN上,有朋友问如下问题:
将0.23234替换成23%,用正则表达式如何处理的问题。

这个问题解决起来其实也很简单,问题在于:
1. 要零去掉,如果是0.212就当转换成21%而不能转换成021%,对于其它数字,如
   1.212则要转换成121%,即第一位数字可能要除掉,也可能不除掉。
   结论是:只有当数字前面除零外,无其它数字时才要将零去除。
2. 要将小数点去掉。

所以,将这个字符串分成五个部分来看待,
1.  可以以零打头的字符串的零串,如'00.212',则将'00'要分成一组,而'001.212',仍然要将'00'分成一组.
2. 要将小数点前,已经去掉零串部分的分成一组,组名称为<header>
3. 要将小数点为成一组<dot>
4. 要将小数点后指定位数内的小数串分成一组<rear>
5. 要将小数点后指定位数外的小数串分成一组。
组已经区分完成。
很容易得出,我们要捕获的组是header和rear
(0*(?<header>\d*)(?<dot>\.)(?<rear>\d{0,2}))\d*

这样替换的语句就写成
${header}${rear}%

转载于:https://www.cnblogs.com/begincsdn/archive/2005/07/13/192049.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值