我有一个将信息拆分成一行的脚本,我已经成功地将它拆分并提取了我需要的信息,但我有一个显示的斜杠:/ I‘’de like to get it后面的内容下面是一个示例:
import re
data = "12:05:12.121 O:CLASS (SMS:/xxx.xxx@xxx.xx) R:VOICE/1654354 mid:4312"
ms = re.match(r'(\S+).*mid:(\d+)', data) # extract time and mid
k = re.findall(r"/\S+", data ) # extract source and destination
result = { 'time':ms.group(1), 'mid':ms.group(2), "source":k[0],"Destination":k[1]}
print result 这是结果{'source': '/xxx.xxx@xxx.xx)', 'Destination':'/1654354', 'mid':'4312','time':'12.05.12.121'}
我想要的结果是没有斜杠,如下所示:
{'source': 'xxx.xxx@xxx.xx)', 'Destination':'1654354', 'mid':'4312','time':'12.05.12.121'} 发布于 2013-04-19 17:15:43
将\S+封装在采集组中:
k = re.findall(r"/(\S+)", data)下面是使用一个正则表达式获取所有信息的另一种方法:
import re
data = "12:05:12.121 O:CLASS (SMS:/xxx.xxx@xxx.xx) R:VOICE/1654354 mid:4312"
result = re.search(r'''
(?P<time>.*?)
\s+
.*?
\s+
\(
(?P<type>.*?):/(?P<source>.*?)
\)
\s+
.*/(?P<destination>\d+)
\s+
mid:(?P<mid>\d+)
''', data, re.VERBOSE)
print result.groupdict()https://stackoverflow.com/questions/16101164
复制相似问题