[問題] 正則表達分割字串(已解決)

作者: silverair (木柵福山雅治)   2019-03-22 10:09:04
小弟我最近碰到一個問題
爬蟲爬出來的資料很亂
沒有分行符,所以會變成一個字串是"id加上資料"
比方說是
12345姆咪可愛12346測試的1號資料12347小貓旅館
我在想要怎麼把這些分開@@
變成['12345姆咪可愛','12346測試的1號資料','12347小貓旅館']這樣子
想用正則表達,可是對正則表達式不是很熟= =
目前想到[0-9]{5}([\s\S]*)
但是顯然只會找到全部...
我的id和資料間又沒有特定的符號可以讓我分割
請問各位前輩有沒有什麼方法好解決@@
補充一下,資料會含有數字和非數字,我想法是遇到下一個五位數字就切@@
但是不太知道怎麼寫
作者: Luluemiko (露露)   2019-03-22 10:24:00
把比對到的數字id用其他符號取代,然後再用正則去切這是一個比較直覺的方法,您可以試看看
作者: wsybu (%小步步%)   2019-03-22 11:07:00
你這樣最後一段會抓不到耶
作者: wxyy   2019-03-22 12:32:00
我的話會先在 五個數字前面塞進空格 再去 split 簡單一點re.sub(r'(\d{5})', r' \1', s).split(' ')
作者: HenryLiKing (HenryLiKing)   2019-03-22 14:52:00
wow 樓上的方法好猛!
作者: moodoa3583 (金牌台灣啤酒)   2019-03-26 11:52:00
回樓樓上與原po,我剛剛試了:article=‘24135critical94003soulboom75365boltblade’skill=re.compile(r’(\d{5}\D+)’)skill.findall(article)這樣也能建立一個以5個數字開頭的list,若有bug還請多指教*5個數字開頭+1個或以上的非數字結尾的組合噢我找到bug了,如果出現像是flame2X之類含有數字的招式,就只能比對到e,後面的數字超出\D範圍所以沒被找到,這樣的確以5個數字來比對後前面加空格分割會是最保險的做法
作者: wxyy   2019-03-27 15:37:00
文章有提到"資料會有數字跟非數字"遇到數字後面會消失o...沒把你說的話看完, 你自己有發現, 我上面說的情況

Links booklink

Contact Us: admin [ a t ] ucptt.com