2012-07-20 77 views
1

我想替换字符串与变量变量传递到Python的

myText = re.findall(b'\x03\x00\x00\x02''(.*?)''\xF7\x00\xF0', s) 

以下代码行就应该这样便

myText = re.findall(b'\x03\x00\x00\x02''(.*?)' & variable_XY &, s) 

我怎么能这样做?

+3

这个问题不是很清楚。你打算在字节串的中间使用双撇号?什么是'&variable_XY&'应该在做什么? '&'只是应该连接,还是其他的?如果是前者,为什么最后会有另一个'&'? – abarnert 2012-07-20 22:17:07

+0

看来你至少缺少一个关键信息:'b'foo''是一个字节字符串。 b是字节字符串周围的“引号”的一部分,而不是单独的运算符或其他内容。与此同时,如果你有更好的语言,也许你可以编写JavaScript或PHP或任何你想做的事情的等价物,并且有人可以告诉你如何将它翻译成Python? – abarnert 2012-07-20 23:01:14

回答

0

你的意思是这样的?

variable_XY = b'\xF7\x00\xF0' 
myText = re.findall(b'\x03\x00\x00\x02(.*?)' + variable_XY, s) 

显然variable_XY可以以任何方式进行设置,只要它是一个字符串。

+0

文字'b'\ x03 \ x00 \ x00 \ x02''(。*?)'由'字节'文字'b'\ x03 \ x00 \ x00 \ x02''和'str'文字组成, '(。*?)'',它们被隐含地连接起来。在Python 2.x中,这是有效的,但毫无意义。在Python 3.x中,这是一个语法错误。 – 2012-07-20 22:12:38

+0

另外,可能值得告诉他关于字符串格式化(或旧式'%s'格式化)而不是串接,因为我怀疑他很快就想知道“好的,但我该如何替换中间的东西而不是在最后“? – abarnert 2012-07-20 22:15:25

+0

@SvenMarnach:我从OP复制/粘贴,并没有发现它。让我解决这个问题。 – orlp 2012-07-20 22:15:32

0

这只是串联。

如果你想的variable_XY内容结尾:

myText = re.findall(b'\x03\x00\x00\x02(.*?)' + variable_XY, s) 

如果你想的variable_XY内容在开始:

myText = re.findall(variable_XY + b'\x03\x00\x00\x02(.*?)', s)