Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何替换”;[]和#x27&引用;使用python使用字符串[';flag=no';]中的空格_Python_String_Replace_Python 3.5 - Fatal编程技术网

“如何替换”;[]和#x27&引用;使用python使用字符串[';flag=no';]中的空格

“如何替换”;[]和#x27&引用;使用python使用字符串[';flag=no';]中的空格,python,string,replace,python-3.5,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 st

尝试使用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)
重新导入
导入子流程
#用于搜索文本的字符串
lst=r'(flask)C:\Users\user1\AppData\Local\Programs\Python 35在此处输入代码>Python secureassistchk.py flag=no'
#在字符串中搜索标志=否并返回“['flag=no']
dat=re.findall('flag.*',lst)
打印(“打印标志:”,dat)
#将['替换为空白,这不起作用
#dat3=re.sub('[\(\)\{\}]','',dat)
#dat3=re.sub('\b[]\b','',dat)
dat3=re.sub(“[]”,“[]”,dat)
打印(“打印标志:”,dat3)

错误是由于
dat
是一个列表,而不是字符串

尝试:


在这里,我为您修复了它:

代码:

dat3=re.sub('\[\]','',str(dat))
打印(“打印标志:”,dat3)

结果:

"'flag = no'"
编辑:

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

dat3 = re.sub('\[|\]|\'','', str(dat))
Maciek解释了初始查询中的第一个问题: dat不是字符串对象

查询的第二个问题是,如果要替换的字符是特殊字符,则必须使用\进行转义。还必须使用管道(也称为“|”字符)链接这些字符

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

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

您应该注意附加的管道和空格字符。

以及它的抛出错误是什么?
dat3 = re.sub('\[|\]|\'| ','', str(dat))