[问题] 正则表达分割字串(已解决)

楼主: 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