Python 提取文本右侧的数字
假设python中有一些字符串以数字结尾Python 提取文本右侧的数字,python,Python,假设python中有一些字符串以数字结尾 2te2xt12 text1 text143 te2xt341 如何获得最正确的数字序列: 2te2xt12 >> 12 text1 >> 1 text143 >> 143 te2xt341 >> 341 有一种简单易行的方法吗 我对re一无所知 提前谢谢 import re s=r"""1231ololo767980716""" re.match('.*?([0-9]+)$',
2te2xt12
text1
text143
te2xt341
如何获得最正确的数字序列:
2te2xt12 >> 12
text1 >> 1
text143 >> 143
te2xt341 >> 341
有一种简单易行的方法吗
我对re一无所知
提前谢谢
import re
s=r"""1231ololo767980716"""
re.match('.*?([0-9]+)$', s).group(1)
>>> '767980716'
或
regexp组件的说明:
是一种非贪婪匹配,只消耗尽可能多的能量(a 贪婪匹配将消耗除最后一个数字以外的所有内容)*?
和[0-9]
是捕获数字的两种不同方式。请注意,后者还与其他写入方案中的数字匹配,如\d
୪代码> 或
൨代码>
- 括号(())使表达式的内容成为一个组,可以使用组(1)检索该组(或第二个组为2,整个匹配为0)
表示多个条目(末尾至少有一个数字)+
只匹配输入的结尾$
您可以在这里找到的所有组件:非常有用的备忘单试试这个?功能测试应该满足您的需要
import re
def test(string):
m = re.search(r'\d+$', string)
if m is not None:
print(m.group())
在python中使用正则表达式非常简单
re.findall('\d+$',yourString)[0]
要了解有关正则表达式的更多信息,请参阅文档这段使用regex
\d+$
的代码应该可以得到您想要的内容
import re
arr = ['2te2xt12',
'text1',
'text143',
'te2xt341']
for s in arr:
m = re.search(r'\d+$', s)
if (m):
print(s + ' >> ' + m.group())
印刷品
2te2xt12 >> 12
text1 >> 1
text143 >> 143
te2xt341 >> 341
谢谢我怎样才能得到te2xt341>>te2xt@KhalilAlHooti使用正则表达式组。在上面的答案中,您可以修改为m=re.search(r'(.*?)(\d+$),string),然后print(m.group(1))去获取te2xt,print(m.group(2))获取341Glad以获得帮助:)
2te2xt12 >> 12
text1 >> 1
text143 >> 143
te2xt341 >> 341