[英]python regular expression error
我正在嘗試進行模式搜索,如果匹配,則在計數器值上設置一個位數組。
runOutput = device[router].execute (cmd)
runOutput = output.split('\n')
print(runOutput)
for this_line,counter in enumerate(runOutput):
print(counter)
if re.search(r'dev_router', this_line) :
#want to use the counter to set something
出現以下錯誤:
如果re.search(r'dev_router',this_line):
2016-07-15T16:27:13:%ERROR:文件“ /auto/pysw/cel55/python/3.4.1/lib/python3.4/re.py”,行166,
在搜索中2016-07-15T16:27:13:%-錯誤:返回_compile(模式,標志).search(字符串)
2016-07-15T16:27:13:%-錯誤:TypeError:預期的字符串或緩沖區
您混合了enumerate()
的參數-首先輸入索引,然后輸入項目本身。 更換:
for this_line,counter in enumerate(runOutput):
與:
for counter, this_line in enumerate(runOutput):
在這種情況下,您會遇到TypeError
,因為this_line
是整數,並且re.search()
期望將字符串作為第二個參數。 展示:
>>> import re
>>>
>>> this_line = 0
>>> re.search(r'dev_router', this_line)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/user/.virtualenvs/so/lib/python2.7/re.py", line 146, in search
return _compile(pattern, flags).search(string)
TypeError: expected string or buffer
順便說一下,像PyCharm這樣的現代IDE可以靜態地檢測到此類問題:
(此屏幕截圖使用了Python 3.5)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.