2015-06-21 249 views
-1

內提取字符什麼是最好的正則表達式來提取下列:正則表達式到JSON

s = '":"1434919817660.wFzJl5KnFq1tyg5X0juKeQmbW8A="' 
==> 14349198.17660.wFzJl5KnFq1tyg5X0.juKeQmbW8A= 

它之間的串或者一個'"長度> 5和由'"終止。我能得到的最好的是:

>>> re.search(r'''[\'|\"](.+)[\'+\"]''', x).group(1) 
':"1434919817660.wFzJl5KnFq1tyg5X0juKeQmbW8A=' 

回答

2

如果您要更換使用STR .translate:

s = '":"1434919817660.wFzJl5KnFq1tyg5X0juKeQmbW8A="' 

if len(s) > 5: 
    print(s.translate(None,""":"'""")) 
1434919817660.wFzJl5KnFq1tyg5X0juKeQmbW8A= 

對於python3您需要使用字符ORD創建一個映射要替換:

s = '":"1434919817660.wFzJl5KnFq1tyg5X0juKeQmbW8A="' 

print(s.translate({ord('"'):"",ord("'"):"",ord(":"):""})) 

如果你有JSON,你還可以通過密鑰取出,如果它是JSON,雖然你不會有任何'

1

您也可以嘗試做一個字符串replace這裏:

s.replace('"','').replace(':','').replace("'",'').strip() 
14349198.17660.wFzJl5KnFq1tyg5X0.juKeQmbW8A= 
2

您可以使用re.sub

>>> re.sub(r'[":]', '', s) 
'1434919817660.wFzJl5KnFq1tyg5X0juKeQmbW8A='