首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中检索变量字符串的Regex

从字符串中检索变量字符串的Regex
EN

Stack Overflow用户
提问于 2014-07-22 04:30:22
回答 4查看 50关注 0票数 2

如果我有一根绳子

代码语言:javascript
复制
ip nat pool-group pool1 pool2 pool3 vrid 0

池组是我想要检索并存储到字符串变量中的一个变量。

pool1 - pool3也是我想要存储到数组列表中的变量,但是可以有任意数量的变量,并且不一定要命名池*。

我想要捕获池组和所有的池

我想用regex来做这件事,但是无法让它工作。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-22 04:45:05

看起来你可能想要这样的东西:

代码语言:javascript
复制
>> import re
>>> m = re.search(r'ip nat (\S+)\s+(\S+)\s+(\S+)\s+(\S+) vrid 0', s)
>>> print m.groups()
('pool-group', 'pool1', 'pool2', 'pool3')
>>> print m.group(1)
pool-group

这将搜索'ip nat‘,后面是四组非空白,其中至少有一个空格。这应该是适当的泛型,只要池变量不包含空格/制表符。

编辑:

代码语言:javascript
复制
>>> s = 'ip nat pool-group pool1 pool2 pool3 vrid 0'
>>> t = 'ip nat pool-group pool1 pool2 pool3 pool6 pool7 vrid 0'
>>> m = re.search('^ip nat (.*) vrid 0', s)
>>> print m.groups()
('pool-group pool1 pool2 pool3',)
>>> n = re.search('^ip nat (.*) vrid 0', t)
>>> print n.groups()
('pool-group pool1 pool2 pool3 pool6 pool7',)
票数 0
EN

Stack Overflow用户

发布于 2014-07-22 04:36:21

我想这就是你要找的,

代码语言:javascript
复制
>>> s = "ip nat pool-group pool1 pool2 pool3 vrid 0"
>>> m = re.search(r'pool-\S+', s)
>>> f = m.group()
>>> f
'pool-group'
>>> lst = re.findall(r'pool\d+', s)
>>> lst
['pool1', 'pool2', 'pool3']

代码语言:javascript
复制
>>> m = re.search(r'\w+-\w+', s)
>>> f = m.group()
>>> f
'pool-group'
>>> lst = re.findall(r'\w+\d+', s)
>>> lst
['pool1', 'pool2', 'pool3']
票数 0
EN

Stack Overflow用户

发布于 2014-07-22 04:41:46

您只需按空格拆分,并从结果列表中获取所需的项:

代码语言:javascript
复制
line = "ip nat pool-group pool1 pool2 pool3 vrid 0"
arr = line.split(' ')
print arr # prints ['ip', 'nat', 'pool-group', 'pool1', 'pool2', 'pool3', 'vrid', '0']

如果您想使用regex:

代码语言:javascript
复制
import re
line = "ip nat pool-group pool1 pool2 pool3 vrid 0"
arr = re.split('\s', line)
print arr # prints ['ip', 'nat', 'pool-group', 'pool1', 'pool2', 'pool3', 'vrid', '0']

# and you can also do the following:
print arr[3:6] # prints ['pool1', 'pool2', 'pool3']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24878951

复制
相关文章

相似问题

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