正则表达式在json中提取字符

时间:2015-06-21 20:58:09

标签: python regex

提取以下内容的最佳正则表达式是什么:

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

'"之间的字符串,长度为> 5,由'"终止。我能得到的最好的是:

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

3 个答案:

答案 0 :(得分:2)

您可以使用re.sub

PicoCore

答案 1 :(得分: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虽然你没有任何'

答案 2 :(得分:1)

你也可以尝试在这里做一个字符串 import AVFoundation class Player: NSObject, AVAudioPlayerDelegate { var audioPlayer: AVAudioPlayer = AVAudioPlayer() func playPodcastAt(path: String) { println("path \(path)") if let directoryURL = NSFileManager.defaultManager() .URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL { let newPath = directoryURL.URLByAppendingPathComponent(path) println(newPath) var err: NSError? audioPlayer = AVAudioPlayer(contentsOfURL: newPath, error: &err) if let error = err { println("audioPlayer error \(error.localizedDescription)") } println("Setting delegate") audioPlayer.delegate = self println("Playing") audioPlayer.prepareToPlay() audioPlayer.play() } }

replace