首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式查找斜杠后的内容,但不显示斜杠

问正则表达式查找斜杠后的内容,但不显示斜杠
EN

Stack Overflow用户
提问于 2013-04-19 17:13:57
回答 1查看 85关注 0票数 0

我有一个将信息拆分成一行的脚本,我已经成功地将它拆分并提取了我需要的信息,但我有一个显示的斜杠:/ I‘’de like to get it后面的内容下面是一个示例:

代码语言:javascript
复制
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'}

我想要的结果是没有斜杠,如下所示:

代码语言:javascript
复制
{'source': 'xxx.xxx@xxx.xx)', 'Destination':'1654354', 'mid':'4312','time':'12.05.12.121'} 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-19 17:15:43

将\S+封装在采集组中:

代码语言:javascript
复制
k = re.findall(r"/(\S+)", data)

下面是使用一个正则表达式获取所有信息的另一种方法:

代码语言:javascript
复制
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()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16101164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档