Python查找字符串中最后一位的位置

Nic*_*osh 0 python

我有一串没有特定模式的字符.我必须寻找一些特定的词然后提取一些信息.目前我被困在找到字符串中最后一个数字的位置.

所以,例如,如果:

mystring="The total income from company xy was 12320 for the last year and 11932 in the previous year"
Run Code Online (Sandbox Code Playgroud)

我想找出这个字符串中最后一个数字的位置.所以结果应该是位置"70"的"2".

unw*_*ind 8

您可以使用正则表达式执行此操作,这是一个快速尝试:

>>>mo = re.match('.+([0-9])[^0-9]*$', mystring)
>>>print mo.group(1), mo.start(1)
2 69
Run Code Online (Sandbox Code Playgroud)

当然,这是一个基于0的位置.


Kas*_*mvd 5

您可以使用生成器表达式来循环函数内尾随的枚举next

>>> next(i for i,j in list(enumerate(mystring,1))[::-1] if j.isdigit())
70
Run Code Online (Sandbox Code Playgroud)

或者使用正则表达式:

>>> import re
>>> 
>>> m=re.search(r'(\d)[^\d]*$',mystring)
>>> m.start()+1
70
Run Code Online (Sandbox Code Playgroud)