我有一个我想要处理的表单(字符串)。表单可以包含某些内容,例如:>>
。
我需要在{{1}}每次出现后抓取每个数字,但我不确定如何。我正在考虑正则表达式,但我对它很可怕。我已经阅读了几个类似的问题,但答案却截然不同,不适用于此(他们在关键字后面找到下一个WORD)或者有时使用矛盾的方法。
最好的方法是什么?感谢。
答案 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会返回组列表。您使用'('和')'分别表示启动和终止的组。
答案 2 :(得分:0)
如果您只是在寻找>>
的单一出现并希望在该子字符串之后抓取所有内容,那么您可以这样做:
mystring = "1234>>5678"
after = mystring.split(">>")[1]
这会将字符串拆分为&#34;&gt;&gt;&#34;然后抓住列表中的第二个元素,即&#34;&gt;&gt;&#34;之后的所有内容。