2015-06-21 248 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='