2014-01-23 49 views
-1

我不知道如何提取我在正则表达式中创建的变量或组。具体为datetimeIP。我已阅读其他帖子和文档,但我感到有点困惑。我想知道是否有人能够为我效仿。我想要做的是能够提取datetimeIP供以后使用。也许存储在一个变量被叫做后抓取正则表达式的部分

示例日志:

log = 'Oct 7 13:24:36 192.168.10.2 2013: 10:07-13:24:35 httpproxy[15359]: id="0001"

httpproxy515139 = re.compile(r'(?P<datetime>\w\w\w\s+\d+\s+\d\d:\d\d:\d\d)\s+(?P<IP>d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*') 
+0

您的正则表达式不会捕获您的示例日志。 –

+1

你错过了IP命名捕获中第一个'\ d'的反斜线。请参阅[链接](http://regex101.com/r/qE3hF7)。 – Jerry

+0

@Jerry我的部分轻微的错字。我喜欢你寄给我的网站! +1 – Liondancer

回答

2

此示例应该可以帮助您:

>>> import re 
>>> sample = 'this is a sample text' 
>>> third_word = re.compile(r'\S+ \S+ (?P<word>\S+) .*') 
>>> ms = third_word.match(sample) 
>>> ms.groupdict() 
{'word': 'a'} 

您需要访问的groupdict()方法返回的匹配对象。

+0

我要去试试看!谢谢您的帮助! – Liondancer

+0

这没有窍门谢谢! – Liondancer