如何更换" []' "字符串中的空格[' flag = no'] with python

时间:2017-01-31 11:09:34

标签: python string replace python-3.5

尝试使用re.sub替换括号和单引号空格,其引发错误来自[' flag = no']

import re
import subprocess
#string to search text
lst = r'(flask) C:\Users\user1\AppData\Local\Programs\Python\Python35-enter code heretion>python secureassistchk.py flag = no'
#search flag = no within string & return "['flag = no']
dat = re.findall('flag.*', lst)
print("Print FLAG:", dat)
# replace [' with blank space , this doesn't work
#dat3 = re.sub('[\(\)\{\}<>]', '', dat)
#dat3 = re.sub('\b[]\b','', dat)
dat3 = re.sub('[ ]','',dat)
print("Print FLAG:", dat3)

2 个答案:

答案 0 :(得分:1)

错误是由dat是列表而非字符串引起的。

尝试:

dat = re.findall('flag.*', lst)[0]

答案 1 :(得分:-1)

在这里,我为你解决了这个问题:

代码: dat3 = re.sub('\[|\]','', str(dat)) print("Print FLAG:", dat3)

结果:

"'flag = no'"

修改

好的,我错过了关于引号的部分。这是正确的正则表达式:

dat3 = re.sub('\[|\]|\'','', str(dat))

Maciek解释了初始查询中的第一个问题: dat不是字符串对象。

您的查询的第二个问题是,如果要替换的字符是特殊字符,则必须使用\来对其进行转义。你还必须用管道链接它们(a.k.a&#39; |&#39;字符)。

例如,如果要在替换字符列表中添加空格,则正则表达式将更改为:

dat3 = re.sub('\[|\]|\'| ','', str(dat))

您应该注意到额外的管道和空格字符。