看板 Python 關於我們 聯絡資訊
想請問一個正規表達的問題 下面這種字串 "text":"gfsha12313fehihiosh@#$%^&*((&{":GFYGGKJGJH", "id":"123456",... 在兩個黃色 " 中間,可以使用各種的符號,英文大小寫,數字 另外在字串後面還有其他不相干的資料 也是由英文大小寫所組成 想請問應該要怎麼利用正規表達抓出出這個字串呢? 想很久想不到方法,每次都會抓到後面的不相干的資料 謝謝了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.155.55
holio:前後的"不相干的資料"有固定格式嗎? 10/20 12:24
SMUGEN:兩個黃色"中間有出現一個" 這個不需要escape嗎? 10/20 13:19
jimmylin212:中間有可能會出現 " 符號,另外後面一個就是,"id" 10/20 13:43
jimmylin212:" 會被轉成 " 10/20 13:48
jimmylin212:text 中間的 " 會被轉換成" ,外面的還是 " 10/20 13:51
wxyy:先假設你的字串都是固定格是 key: value..... 10/20 21:18
wxyy:foo = eval("{%s}" % str)['text'] # str 就是你的字串 10/20 21:19
wxyy:foo 就是你要的了....不過我沒用到 regex..... 10/20 21:20
jimmylin212:還是試不出來,會有一個很怪的 SYNTAX error.. 10/20 22:50
wxyy:re.match(r'"text":"(.*)",.*', str).group(1) # str = 字串 10/20 22:58
jimmylin212:('("text":"[\w\s!@#$%^&*)(_+-}{:{}?\;/]*")') 10/20 23:25
jimmylin212:我用暴力破解掉了... 10/20 23:25
jimmylin212:還是謝謝你的幫忙了! 10/20 23:35