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

时间:2015-11-05 13:30:52

标签: python

我有一串没有特定图案的字符。我必须寻找一些特定的词然后提取一些信息。 目前,我一直在寻找字符串中最后一个数字的位置。

所以,例如if:

mystring="The total income from company xy was 12320 for the last year and 11932 in the previous year"

我想找出这个字符串中最后一个数字的位置。 所以在“70”位置结果应为“2”。

5 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:3)

您可以使用生成器表达式在next函数内循环遍历枚举:

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

或使用正则表达式:

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

答案 2 :(得分:1)

将字符串中的所有数字保存在数组中并弹出最后一个数字。

array = [int(s) for s in mystring.split() if s.isdigit()]
lastdigit = array.pop()

它比正则表达式方法更快,看起来比它更具可读性。

答案 3 :(得分:0)

if ( $insert = $mysqli->query ( "... your sql query ...") )

答案 4 :(得分:0)

您可以使用简单的正则表达式反转字符串并获得第一个匹配项:

s = mystring[::-1]
m = re.search('\d', s)
pos = len(s) - m.start(0)