我需要从json字符串中抓取数据,我当前的代码是:
import re
>>> output = """
... Uploading file 'ex4-to-mq4-ps-decompiler.mp4'...
... Progress: 13.29 Mbps, 3703728 / 3703084 (100.017%) ETA 0s
... Upload successful! Video ID: tZ5xaRLhljc
... Video added to playlist 'decompile mql4' (PL2Q1nwGTMjdeAsBn6mcQ7KuFo6K7_g8_L)
... Video added to playlist 'decompile ex4' (PL2Q1nwGTMjdffMBkc6L4r6SeXnjz7eUiP)
... """
re.search("Video ID: (.+)", output, re.S).group(1)
>>> re.search("Video ID: (.+)?", output, re.S).group(1)
"tZ5xaRLhljc\nVideo added to playlist 'decompile mql4' (PL2Q1nwGTMjdeAsBn6mcQ7KuFo6K7_g8_L)\nVideo added to playlist 'decompile ex4' (PL2
我只需要提取视频tZ5xaRLhljc
的ID
我该怎么做?
答案 0 :(得分:3)
re.S
是re.DOTALL
,它使.
与换行符\n
匹配。如果删除它,.
将不再与换行符匹配,并且您的代码将起作用。也许是更安全的解决方案
re.search(r"Video ID: (\w+)", output).group(1)
其中\w
与所有“单词”字符(即非空格)匹配。
答案 1 :(得分:2)
尝试一下:
re.search("Video ID: (.+)\n", output).group(1)