使用Python查找某个关键字后面的数字

时间:2016-02-05 18:07:57

标签: python

我有一个我想要处理的表单(字符串)。表单可以包含某些内容,例如:>>

我需要在{{1}}每次出现后抓取每个数字,但我不确定如何。我正在考虑正则表达式,但我对它很可怕。我已经阅读了几个类似的问题,但答案却截然不同,不适用于此(他们在关键字后面找到下一个WORD)或者有时使用矛盾的方法。

最好的方法是什么?感谢。

3 个答案:

答案 0 :(得分:3)

您可以将findall()positive look behind

一起使用
>>> import re
>>>
>>> s = ">>1244"
>>> re.findall(r"(?<=>>)\d+", s)
['1244']
>>>
>>> s = ">>1244 something >>500"
>>> re.findall(r"(?<=>>)\d+", s)
['1244', '500']

此处(?<=>>)\d+表达式会匹配\d+之后的一个或多个数字(>>)。

答案 1 :(得分:1)

您可以使用正则表达式,尝试:

s = ">>1244 aaa >>112 >>344>>456 aaa sss >>345 >>aa  567"

import re

result = re.findall(">>(\d+)",s)

print result

输出:

['1244', '112', '344', '456', '345']

请记住,如果有组,findall会返回组列表。您使用'('和')'分别表示启动和终止的组。

看:https://docs.python.org/2/library/re.html

答案 2 :(得分:0)

如果您只是在寻找>>的单一出现并希望在该子字符串之后抓取所有内容,那么您可以这样做:

mystring = "1234>>5678"
after = mystring.split(">>")[1] 

这会将字符串拆分为&#34;&gt;&gt;&#34;然后抓住列表中的第二个元素,即&#34;&gt;&gt;&#34;之后的所有内容。