Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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
Python not运算符上的正则表达式查询_Python_Regex - Fatal编程技术网

Python not运算符上的正则表达式查询

Python not运算符上的正则表达式查询,python,regex,Python,Regex,我有一个混合模式的字符,数字和十六进制字符,如下面的一个 \x20\x20\x20asdasd\x20\x20\x20asd\x20a12v\x20123123\x20\x20 使用regex,我只想找出那些不是十六进制模式的,比如asdasd、a12v。123123 E.x:不是(\[xX]\d{2}) 最终目标是将所有内容转换为十六进制格式 \x20\x20\x20\x61\x73\x64\x61\x73\x64\x20\x20\x20\x61\x73\x64\x20\x61\x31\x

我有一个混合模式的字符,数字和十六进制字符,如下面的一个

  • \x20\x20\x20asdasd\x20\x20\x20asd\x20a12v\x20123123\x20\x20
使用regex,我只想找出那些不是十六进制模式的,比如asdasd、a12v。123123

E.x:不是(\[xX]\d{2})

最终目标是将所有内容转换为十六进制格式

\x20\x20\x20\x61\x73\x64\x61\x73\x64\x20\x20\x20\x61\x73\x64\x20\x61\x31\x32\x76\x20\x31\x32\x33\x31\x32\x33\x20\x20
如何做到这一点


谢谢。

您可能可以使用正则表达式执行此操作,但它可能非常容易出错,因为您需要使用正则表达式帐户来处理所有其他转义可能性(例如,八进制转义),这会变得相当混乱。:)

相反,请先尝试使用str.decode取消转义数据:

s = '\\x20\\x20\\x20asdasd\\x20\\x20\\x20asd\\x20a12v\\x20123123\\x20\\x20'
s = s.decode('string-escape')
s = ''.join('\\x%2x' % ord(c) for c in s)

最后一步,可能有一个更快的方法。但我只是举了个例子。

谢谢你的回答。我想这解决了我的问题。再次非常感谢。