【发布时间】:2019-08-13 18:12:41
【问题描述】:
下午好,我在使用 paramiko 通过团队进行 ssh 查询后得到以下字符串,我在变量“buff_config”中得到字符串,我想知道表达式“* B: P79COL01”的次数# $" 在其中找到,但这样做会出现以下错误:
/usr/local/lib/python3.6/re.py in findall(模式、字符串、标志) 220 221 空匹配包含在结果中。""" --> 222 return _compile(pattern, flags).findall(string) 223 224 def finditer(模式,字符串,标志=0):
/usr/local/lib/python3.6/re.py 在 _compile(pattern, flags) 299 如果不是 sre_compile.isstring(pattern): 300 raise TypeError("第一个参数必须是字符串或编译模式") --> 301 p = sre_compile.compile(模式,标志) 302 如果不是(标志和调试): 303 如果 len(_cache) >= _MAXCACHE:
/usr/local/lib/python3.6/sre_compile.py 在 compile(p, flags) 560 如果是字符串(p): 561 模式 = p --> 562 p = sre_parse.parse(p, flags) 563 其他: 564 模式 = 无
/usr/local/lib/python3.6/sre_parse.py in parse(str, flags, pattern) 853 854 尝试: --> 855 p = _parse_sub(源、模式、标志和 SRE_FLAG_VERBOSE,0) 856 除了详细: 857 # VERBOSE 标志在模式内打开。成为
/usr/local/lib/python3.6/sre_parse.py 在 _parse_sub(source, state, 详细,嵌套) 414 而真: 415 项附加(_parse(源,状态,详细,嵌套 + 1, --> 416 不是嵌套的,不是项目)) 417 如果不是源匹配(“|”): 418休息
/usr/local/lib/python3.6/sre_parse.py in _parse(source, state, 详细,嵌套,第一) 614 如果不是 item 或 (_len(item) == 1 并且 item[0][0] 是 AT): 第615章 --> 616 source.tell() - 这里 + len(this)) 617如果_REPEATCODES中的项目[0][0]: 618 raise source.error("多次重复",
错误:在位置 0 没有可重复的内容
我使用的代码如下:
re.findall('*B:P79COL01#$',buff_config)
buff_config 变量:
对不起,我可以放置 buff_config 变量包含的内容,因为我没有离开问题编辑器
【问题讨论】:
-
*B:P79COL01#是设备的提示符。为什么您希望它在字符串中包含两次以上? -
您的正则表达式以 astrix 开头。 astrixi 用于表示 0 次或多次出现或某些匹配。您需要添加反斜杠以删除特殊含义,以便将其视为文字
-
这是 XY 问题吗?
标签: python