gpt4 book ai didi

python - 如何使用正则表达式在 python 中正确替换

转载 作者:太空宇宙 更新时间:2023-11-04 11:13:19 25 4
gpt4 key购买 nike

我有一个 python 字符串:

s = 'filename               13.00 50850.8732503344475    37.11  abc'

为了找到格式为 nn.nn 的第二个字符串,我知道我可以这样做:

re.findall(r'.*(\b\d+\.\d+)',s)[0]

它发现:

'37.11'

但我想用 99.99 代替它。

我试过:

re.sub(r'.*(\b\d+\.\d+)','99.99',s)

但这只会产生:

'99.99  abc'

而我想要:

'filename               13.00 50850.8732503344475    99.99  abc'

显然我还不明白正则表达式是如何工作的。有人可以提供帮助吗?

最佳答案

您应该捕获需要保留的内容并在替换模式中使用明确的替换反向引用:

s = re.sub(r'(.*)\b\d+\.\d+',r'\g<1>99.99', s)

参见 Python demoregex demo .

图案细节

  • (.*) - 第 1 组(其值由替换模式中的 \g<1> 反向引用引用):尽可能多的除换行符以外的任何 0+ 个字符
  • \b - 单词边界
  • \d+ - 1+ 位数
  • \. - 一个点
  • \d+ - 1 个以上数字。

关于python - 如何使用正则表达式在 python 中正确替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57665192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com