正则表达式在特定位置找到数字

时间:2010-10-06 17:55:52

标签: python regex

嗨,我有一个像这样的字符串

track._Event('product', 'test');Product.lisen(1234, 21, 4343); return false;

我想使用一些正则表达式,所以我最终会使用组

pid = 1234
p1 = 21
p2 = 4343

2 个答案:

答案 0 :(得分:2)

import re

s = "track._Event('product', 'test');Product.lisen(1234, 21, 4343); return false;"

pattern = re.compile(r'.*lisen\((?P<pid>\d+),\s*(?P<p1>\d+),\s*(?P<p2>\d+)\).*')

pid, p1, p2 =  map(int, pattern.match(s).groups())

注意:我使用了命名捕获组,但在这种情况下不需要。

答案 1 :(得分:0)

为什么正则表达式?你可以做到简单的字符串操作

>>> s="track._Event('product', 'test');Product.lisen(1234, 21, 4343); return false;"
>>> s.split("lisen(")[-1].split(")")[0].split(",")
['1234', ' 21', ' 4343']