我有一个我想要处理的表单(一个字符串)。表单可以包含某些事件,例如:>>1244
。使用Python查找某个关键字后的数字
我需要在每次出现>>
后抓取每个数字,但我不知道如何。我在想正则表达式,但我很糟糕。我已经阅读了几个类似的问题,但答案是截然不同的,不适用于此(它们在关键字后面找到下一个WORD),或者有时使用矛盾的方法。
这样做的最好方法是什么?谢谢。
我有一个我想要处理的表单(一个字符串)。表单可以包含某些事件,例如:>>1244
。使用Python查找某个关键字后的数字
我需要在每次出现>>
后抓取每个数字,但我不知道如何。我在想正则表达式,但我很糟糕。我已经阅读了几个类似的问题,但答案是截然不同的,不适用于此(它们在关键字后面找到下一个WORD),或者有时使用矛盾的方法。
这样做的最好方法是什么?谢谢。
可以使用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+
)的>>
后走了。
如果就这么简单到你只想找的>>
单次数,并希望抓住这串之后的一切,你可以这样做:
mystring = "1234>>5678"
after = mystring.split(">>")[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返回组的列表,如果有团体。您指示使用'('和')'分别启动和终止的组。
你是什么意思?我不应该问问做什么最好的方法是什么? – Man
它清楚地表明:“表单可以包含某些事件”,该句子告诉你1.“某些事件”,这意味着它们不必处于起始处,也可以用于复数形式,这意味着可以有多个2我在“1234”例子之前说“例如”,谁会认为它总是会是1234?你是认真的吗? – Man
我收回了我的评论。我的错是没有仔细阅读。 downvote不是我的。 –