2012-07-20 117 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)