提取以下内容的最佳正则表达式是什么:
s = '":"1434919817660.wFzJl5KnFq1tyg5X0juKeQmbW8A="'
==> 14349198.17660.wFzJl5KnFq1tyg5X0.juKeQmbW8A=
'
或"
之间的字符串,长度为> 5,由'
或"
终止。我能得到的最好的是:
>>> re.search(r'''[\'|\"](.+)[\'+\"]''', x).group(1)
':"1434919817660.wFzJl5KnFq1tyg5X0juKeQmbW8A='
答案 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