假设我在 python 中有一些字符串以某个数字结尾。
2te2xt12
text1
text143
te2xt341
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到最正确的数字序列:
2te2xt12 >> 12
text1 >> 1
text143 >> 143
te2xt341 >> 341
Run Code Online (Sandbox Code Playgroud)
有没有简单易行的方法。
我对 re 一无所知
提前致谢
import re
s=r"""1231ololo767980716"""
re.match('.*?([0-9]+)$', s).group(1)
>>> '767980716'
Run Code Online (Sandbox Code Playgroud)
或者
next(re.finditer(r'\d+$', s)).group(0)
>>> '767980716'
Run Code Online (Sandbox Code Playgroud)
正则表达式组件说明:
.*? 是一个非贪婪匹配并且只消耗尽可能多的(贪婪匹配会消耗除最后一位数字之外的所有内容)。
[0-9]和\d是捕获数字的两种不同方式。请注意,后者也匹配其他书写方案中的数字,例如?
或?
+ 表示多个条目(末尾至少有一个数字)。$ 只匹配输入的结尾。以及您可以在此处找到的所有组件:https : //www.rexegg.com/regex-quickstart.html非常有用的备忘单