首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找出这些值吗?

找出这些值吗?
EN

Stack Overflow用户
提问于 2015-02-26 16:55:04
回答 3查看 58关注 0票数 1

我有一句这样的台词:

代码语言:javascript
复制
a = "switchport port-security mac-address 000a.1111.2222 vlan 43"

我想把mac和vlan号码放在如下列表中:

代码语言:javascript
复制
["000a.1111.2222","43"]

我想像下面这样的东西会起作用的,有什么想法吗?

代码语言:javascript
复制
import re
a = "switchport port-security mac-address 000a.1111.2222 vlan 43"
b = re.findall("([a-fA-F0-9]{4}[\.]){2}([a-fA-F0-9]{4})|(\d+)",a)
print b
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-26 17:06:46

这里有一个使用split的稍微不同的解决方案,如果您不确定是否可以在splitted的索引3和5处抓取元素(在本例中,它分别在"mac-address""vlan"之后捕获split泰德元素):

代码语言:javascript
复制
In [1]: a = "switchport port-security mac-address 000a.1111.2222 vlan 43"

In [2]: splitted = a.split()

In [3]: [x for i,x in enumerate(splitted) if i > 0 and splitted[i-1] in ["mac-address", "vlan"]]
Out[3]: ['000a.1111.2222', '43']
票数 1
EN

Stack Overflow用户

发布于 2015-02-26 16:59:33

如果没有正则表达式,只需使用split。

代码语言:javascript
复制
a = "switchport port-security mac-address 000a.1111.2222 vlan 43"

split_list = a.split()
required_info = [split_list[3],split_list[5]]
print required_info
>> ["000a.1111.2222","43"]
票数 2
EN

Stack Overflow用户

发布于 2015-02-26 17:05:04

你只需要分组:

代码语言:javascript
复制
>>> a = "switchport port-security mac-address 000a.1111.2222 vlan 43"
>>> import re
>>> re.findall(r'mac-address (.*).*vlan (.*)',a)
[('000a.1111.2222 ', '43')]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28748210

复制
相关文章

相似问题

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