gpt4 book ai didi

python - 如何使用正则表达式从字符串中提取数字并返回最后 3 个或更少的数字

转载 作者:行者123 更新时间:2023-11-28 19:35:01 25 4
gpt4 key购买 nike

考虑字符串 s

s = 'hello1 my45-fr1@nd5'

我想去除最后 3 位数字 '515'。我知道我能做到

import re

re.sub(r'\D', '', s)[-3:]

'515'

但是,我需要一个执行相同任务的正则表达式替换。

最佳答案

您可以使用这个 re.sub使用前瞻:

>>> s = 'hello1 my45-fr1@nd5'
>>> print re.sub(r'\D+|\d(?=(?:\D*\d){3,}\D*$)', '', s)
515

RegEx Demo

正则表达式分解:

\D+                    # match 1 or more non-digits
| # OR
\d # match a digit
(?=(?:\D*\d){3,}\D*$) # that is followed by 3 or more digits in the string

正前瞻 (?=(?:\D*\d){3,}\D*$)断言我们距离当前位置至少有 3 位数。

关于python - 如何使用正则表达式从字符串中提取数字并返回最后 3 个或更少的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45924909/

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