Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
为什么Python3.8会像“\x48“;作为「;H";。我想把它写成“我想把它写成”\x48“;一串 我使用Python来编写一个简单的程序,它将样本C++ ++ .CPP文件作为字符串,然后找到声明到它的所有字符串。然后我想将该字符串替换为其等效的十六进制代码,如“H”等于“\x48”_Python_String_Python Unicode_Unicode Escapes - Fatal编程技术网

为什么Python3.8会像“\x48“;作为「;H";。我想把它写成“我想把它写成”\x48“;一串 我使用Python来编写一个简单的程序,它将样本C++ ++ .CPP文件作为字符串,然后找到声明到它的所有字符串。然后我想将该字符串替换为其等效的十六进制代码,如“H”等于“\x48”

为什么Python3.8会像“\x48“;作为「;H";。我想把它写成“我想把它写成”\x48“;一串 我使用Python来编写一个简单的程序,它将样本C++ ++ .CPP文件作为字符串,然后找到声明到它的所有字符串。然后我想将该字符串替换为其等效的十六进制代码,如“H”等于“\x48”,python,string,python-unicode,unicode-escapes,Python,String,Python Unicode,Unicode Escapes,我的代码是 f = open("sample.cpp", "r") f1 = f.read() regex = r"\"(?:(?:(?!(?<!\\)\").)*)\"" ii=0 for str2021 in find: print("Output Of Encode=") str2021="".join(r'\x{0:x}'.format(o

我的代码是

f = open("sample.cpp", "r")
f1 = f.read()
regex = r"\"(?:(?:(?!(?<!\\)\").)*)\""

ii=0
for str2021 in find:
   print("Output Of Encode=")
   str2021="".join(r'\x{0:x}'.format(ord(c)) for c in find[ii])
   print (str2021)
   ii=ii+1

subst='\x22\x48\x22'
result = re.sub(regex,subst, f1, 0)
if result:
  print("substituted op=")
  print (result)
f=open(“sample.cpp”、“r”)
f1=f.read()

regex=r“\”(?:(?:(?!(?您可以使用原始字符串:

subst = r'\x22\x48\x22'
然后,也更改您的re.sub呼叫:

re.sub(regex, re.escape(subst), f1, 0)
Python doc说,只避开反斜杠更好,不过:

re.sub(regex, subst.replace("\\", r"\\"), f1, 0)

您可以使用原始字符串:

subst = r'\x22\x48\x22'
然后,也更改您的re.sub呼叫:

re.sub(regex, re.escape(subst), f1, 0)
Python doc说,只避开反斜杠更好,不过:

re.sub(regex, subst.replace("\\", r"\\"), f1, 0)

错误似乎出现在这一行
subst='\x22\x48\x22'
上,它显然应该是一个原始字符串,正如您在字符串中使用的所有其他位置所做的那样。错误似乎出现在这一行
subst='\x22\x48\x22'
上,它显然应该是一个原始字符串,就像您在其他所有位置所做的那样“我在字符串中使用了
\x
。我在使用您的方法后出现此错误。回溯(最近一次调用):文件“C:\Users\Angel x\AppData\Local\Programs\Python\Python38\lib\sre\u parse.py”,第1039行,在parse\u模板this=chr中(转义[this][1])KeyError:'\\X实际上,当这个subst字符串被传递到这个函数result=re.sub(regex,subst,f1,0)时,就会抛出关于转义字符的错误。@AbdulHannan在我的答案中添加了re.sub调用。我是在使用你的方法后得到这个错误的。回溯(最近一次调用):File“C:\Users\Angel X\AppData\Local\Programs\Python\Python38\lib\sre_parse.py”,第1039行,在parse_模板this=chr(ESCAPES[this][1])keyrerror:'\\X实际上,当这个子字符串被传递到这个函数result=re.sub(regex,subst,f1,0)中时,就会抛出关于转义字符的错误。@AbdulHannan在我的答案中添加了re.sub调用。