加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

用9替换所有尾随零的正则表达式

发布时间:2020-12-14 05:48:32 所属栏目:百科 来源:网络整理
导读:我正在尝试实现BigInt减去一个,并希望优化我的代码.现在我只是迭代数字字符串,例如“1241241291919191904124142398623500000000000000”并且为了减去一个,所有尾随的零都需要用9替换. 我如何用正则表达式做到这一点? 使用正则表达式实现BigInt subtractOne(
我正在尝试实现BigInt减去一个,并希望优化我的代码.现在我只是迭代数字字符串,例如“1241241291919191904124142398623500000000000000”并且为了减去一个,所有尾随的零都需要用9替换.

我如何用正则表达式做到这一点?

使用正则表达式实现BigInt subtractOne(string)函数的智能方法是什么?它有几个特殊情况.

这是我到目前为止匹配尾随零的内容:

m = re.search('(?<=[1-9])0+$','91000')

解决方法

使用 lookahead assertion:

import re
s =  "1241241291919191904124142398623500000000000000"
r = re.compile("""0       # Match 0
                  (?=     # only if the following can be matched here:
                   0*     # zero or more 0s
                   $     # until the end of the string.
                  )       # End of lookahead assertion""",re.VERBOSE)

现在你可以做到

>>> r.sub("9",s)
'1241241291919191904124142398623599999999999999'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读