我對正則表達式很陌生,但決定使用它們來反序列化PHP數組。這裏有一些背景信息:Python:使用正則表達式反序列化PHP數組
我重寫了用PHP編寫的django中的公司基於數據庫的網站。與公司和行業有M2M關係。在以前的模型中,它是通過使用序列化的PHP數組解決的,所以我現在必須正確地同步所有內容。我的第一次嘗試是一些分裂和切割,這真的很難看,所以我決定跳入正則表達式。下面是我得到了什麼(它的工作完美的罰款)現在:
def unserialize_array(serialized_array):
import re
matched_sub = re.search('^a:\d+:\{i:\d+;s:\d+:"(.*?)";\}$', serialized_array).group(1)
industry_list = re.sub('";i:\d+;s:\d+:"', "? ", matched_sub).split("? ")
new_dict = dict(enumerate(industry_list))
return new_dict
我不過想知道如果我不能做到這一切與一個正則表達式,而不是兩個。
[python中反序列化PHP數據]的可能的複製(http://stackoverflow.com/questions/5935501/unserialize-php-data-in-python) –
否,決定不使用套餐的像phpserialize因爲它比我需要的還要多,並且會導致不必要的錯誤,例如我的數組數據的長度,因爲它包含德語元音變音。 –
@FynnBecker:你能提供一些關於我提出的解決方案的反饋嗎?我的假設是正確的,或者你可以提供一些示例輸入? –