新手需要帮助python正则表达式

时间:2015-07-07 08:13:14

标签: python regex python-2.7

我有这样的内容:

aid: "1168577519",      cmt_id = 1168594403;

现在我想获得所有数字序列:

1168577519
1168594403

by regex。

我从未遇到过正则表达式问题,但这次我应该用它来做一些解析工作。 现在我可以在"援助"之后得到序列。和" cmt_id"分别。我不知道如何将它们合并为一个正则表达式。

我目前的进展:

pattern = re.compile('(?<=aid: ").*?(?=",)')
print pattern.findall(s)

pattern = re.compile('(?<=cmt_id = ).*?(?=;)')
print pattern.findall(s)

2 个答案:

答案 0 :(得分:0)

有许多不同的方法来设计合适的正则表达式,这取决于您可能遇到的可能输入的范围。

以下内容可以解决您的确切问题但可能会因为不同的样式输入而失败。您需要提供更多详细信息,但这将是一个开始。

re_content = re.search("aid\: \"([0-9]*?)\",\W*cmt_id = ([0-9]*?);", input)

print re_content.groups()

这给出了以下输出:

('1168577519', '1168594403')

此示例假定您的输入中可能还有其他数字,并且您尝试仅提取aidcmt_id值。

答案 1 :(得分:0)

最简单的解决方案是使用re.findall

示例

>>> import re
>>> string = 'aid: "1168577519",      cmt_id = 1168594403;'
>>> re.findall(r'\d+', string)
['1168577519', '1168594403']
>>>
  • \d+匹配一个或多个数字。