看板 Python 關於我們 聯絡資訊
import re s=''' =?utf-8?B?W0lUIERhdGEgUmVxdWVzdCBTeXN0ZW1dIFRoZSBkb2N1bWVudCBpcyByZWFz?= =?utf-8?B?c2lnbiA+PiDoq4vkv67mraMg5aGr5ZauIOe/kuaFoywgICAgICgqKiBTZWN1?= =?utf-8?B?cml0eSBDKiop?= ''' res = re.findall('=\?utf-8\?B\?(.*?)\?=',s,re.M) print(''.join(res)) ※ 引述《ctr1 (【積π】)》之銘言: : 後來發現當內容太長時還需要換行 : =?utf-8?B?W0lUIERhdGEgUmVxdWVzdCBTeXN0ZW1dIFRoZSBkb2N1bWVudCBpcyByZWFz?= : =?utf-8?B?c2lnbiA+PiDoq4vkv67mraMg5aGr5ZauIOe/kuaFoywgICAgICgqKiBTZWN1?= : =?utf-8?B?cml0eSBDKiop?= : 請問這樣要怎麼把紅色的字串起來處理比較好 : 有夠複雜的啦 : 謝謝各位前輩 : ※ 引述《ctr1 (【積π】)》之銘言: : : 標題: [問題] 切字串 split : : 時間: Wed Mar 21 09:17:58 2018 : : 想請問版上大大 : : 我有很多跟下方s相似的字串 : : 內容不同僅為紅色的部分 : : 若我只想取出紅色這段 : : 是否還有更好的方式 : : 以下是我取得紅色字串的方式 : : 謝謝 : : s = "b'=?utf-8?B?UmU6IOaEn+isneS/oSAgICgqKiBTZWN1cml0eSBDKiop?='" : : x = "b'=?utf-8?B?" : : m1 = s.split(x)[1] : : m2 = m1.split("?='")[0] : : print(m2) : : -- : : 推 asd456fgh778: 為什麼不直接用問號切 03/21 09:19 : : 推 asd456fgh778: 另外一個是直接用索引值來抓字串就好了吧 不需要切 03/21 09:31 : : → Conjuror: m2=x.split("?")[3] 03/21 10:16 : : 推 CaptainH: s[:len(x)] 其他人到底在想什麼 03/21 11:15 : : → CaptainH: 手機碼字打錯了 應該是 s[len(x):] 03/21 11:16 : : → asd456fgh778: 樓上你錯了 尾巴沒去掉 03/21 11:45 : : → Jeffrey11061: 只用問號切感覺有點危險 畢竟不知道中間的規則 03/21 12:38 : : 推 asd456fgh778: 的確實是這樣(我錯了),另外一種比較安全 03/21 12:49 : : → asd456fgh778: 前面多字 抱歉 03/21 12:49 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.246.56.126 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1521617935.A.DC9.html ※ 編輯: cutekid (111.246.56.126), 03/21/2018 15:42:45
neil987: 推re 03/21 16:04
ctr1: 非常感謝!! 03/21 16:06
Panthalassa: 好酷,計算理論的實際用法XD 03/21 16:27
aszx4510: 終於有人用regex 03/21 17:34
s860134: 這才常用 03/21 19:42
f496328mm: 正規才是常用的方法 03/21 21:36
f496328mm: 不過大大的寫法也蠻厲害的 03/21 21:36
coeric: 推...我也覺得是應該要用re阿!(對不起,我只會re) 03/21 23:30
art1: 正規表示法真的很值得花時間去學 03/21 23:52
ECZEMA: 推re 03/22 07:29