python 如何根据数字标题划分段落

Li_Yolanda 2018-11-15 01:47:28
我想把形式为
“总则1.1啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊12%啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊1,2狼是怎么叫的:口嗷嗷的、口嗷呜呜、口嗷呜嗷、口呜嗷嗷呜呜嗷。1,3我们都是小青蛙,呱呱呱呱呱。每天快乐的生活,心中志气大。2、1、1我们是害虫,我们是害虫。2、1,2正义的来福临、正义的来福临。2.1.2.1summer summer is over left 1 secret. 2,1.2,2 in my heart in my heart can't tell you~”
切分成这样的列表:
["总则"]
["1.1啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊12%啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"]
["1,2狼是怎么叫的:口嗷嗷的、口嗷呜呜、口嗷呜嗷、口呜嗷嗷呜呜嗷。"]
["1,3我们都是小青蛙,呱呱呱呱呱。每天快乐的生活,心中志气大。"]
["2、1、1我们是害虫,我们是害虫。"]
["2、1,2正义的来福临、正义的来福临。"]
["2.1.2.1summer summer is over left 1 secret. "]
["2,1.2,2 in my heart in my heart can't tell you~"]
我现在使用的代码:
import re
DOC_SPLIT_RE = u'((\d+[/.,、])(\d+[/.,、]?)+)?'
sentences = re.split(DOC_SPLIT_RE, content_clean)

然而切出来的东西奇形怪状的,我该怎么改呀?
...全文
244 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
后面不带%我只是举个处理的例子, 但是实际使用不应该这么处理, 因为你不包含了% 还有其他符号呢, 这样就无法形成规则 你应该要做的是, 先找出规则, 再根据规则写代码
引用 4 楼 Li_Yolanda 的回复:
如果要限制不允许数字后面跟%,应该怎么做呢,再加一层判断吗? 我找不到回复在哪,不知道是不是这样 [quote=引用 1 楼 hskill 的回复:] 你的哪个12%不好处理, 除非限制不允许数字后面跟%, 或者判断每次取得的节号都要比前一个大这种逻辑

import re

doc = r"总则1.1啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊12%啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊1,2狼是怎么叫的:口嗷嗷的、口嗷呜呜、口嗷呜嗷、口呜嗷嗷呜呜嗷。1,3我们都是小青蛙,呱呱呱呱呱。每天快乐的生活,心中志气大。2、1、1我们是害虫,我们是害虫。2、1,2正义的来福临、正义的来福临。2.1.2.1summer summer is over left 1 secret. 2,1.2,2 in my heart in my heart can't tell you~"
startl = 0
for m in re.finditer(r'(\d+([.,、,]\d)*)', doc):
    if m.start() > startl:
        print(doc[startl: m.start()])
        startl = m.start()
if (startl > 0) and (startl < len(doc)):
    print(doc[startl:])
结果: 总则 1.1啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 12%啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 1,2狼是怎么叫的:口嗷嗷的、口嗷呜呜、口嗷呜嗷、口呜嗷嗷呜呜嗷。 1,3我们都是小青蛙,呱呱呱呱呱。每天快乐的生活,心中志气大。 2、1、1我们是害虫,我们是害虫。 2、1,2正义的来福临、正义的来福临。 2.1.2.1summer summer is over left 1 secret. 2,1.2,2 in my heart in my heart can't tell you~
[/quote]
  • 打赏
  • 举报
回复
你的哪个12%不好处理, 除非限制不允许数字后面跟%, 或者判断每次取得的节号都要比前一个大这种逻辑

import re

doc = r"总则1.1啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊12%啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊1,2狼是怎么叫的:口嗷嗷的、口嗷呜呜、口嗷呜嗷、口呜嗷嗷呜呜嗷。1,3我们都是小青蛙,呱呱呱呱呱。每天快乐的生活,心中志气大。2、1、1我们是害虫,我们是害虫。2、1,2正义的来福临、正义的来福临。2.1.2.1summer summer is over left 1 secret. 2,1.2,2 in my heart in my heart can't tell you~"
startl = 0
for m in re.finditer(r'(\d+([.,、,]\d)*)', doc):
    if m.start() > startl:
        print(doc[startl: m.start()])
        startl = m.start()
if (startl > 0) and (startl < len(doc)):
    print(doc[startl:])
结果: 总则 1.1啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 12%啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 1,2狼是怎么叫的:口嗷嗷的、口嗷呜呜、口嗷呜嗷、口呜嗷嗷呜呜嗷。 1,3我们都是小青蛙,呱呱呱呱呱。每天快乐的生活,心中志气大。 2、1、1我们是害虫,我们是害虫。 2、1,2正义的来福临、正义的来福临。 2.1.2.1summer summer is over left 1 secret. 2,1.2,2 in my heart in my heart can't tell you~
Li_Yolanda 2018-11-16
  • 打赏
  • 举报
回复
我想做一个小练习,但是刨下来的数据太不规范了
引用 2 楼 u013252618 的回复:
这是在学习?
Li_Yolanda 2018-11-16
  • 打赏
  • 举报
回复
如果要限制不允许数字后面跟%,应该怎么做呢,再加一层判断吗? 我找不到回复在哪,不知道是不是这样
引用 1 楼 hskill 的回复:
你的哪个12%不好处理, 除非限制不允许数字后面跟%, 或者判断每次取得的节号都要比前一个大这种逻辑

import re

doc = r"总则1.1啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊12%啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊1,2狼是怎么叫的:口嗷嗷的、口嗷呜呜、口嗷呜嗷、口呜嗷嗷呜呜嗷。1,3我们都是小青蛙,呱呱呱呱呱。每天快乐的生活,心中志气大。2、1、1我们是害虫,我们是害虫。2、1,2正义的来福临、正义的来福临。2.1.2.1summer summer is over left 1 secret. 2,1.2,2 in my heart in my heart can't tell you~"
startl = 0
for m in re.finditer(r'(\d+([.,、,]\d)*)', doc):
    if m.start() > startl:
        print(doc[startl: m.start()])
        startl = m.start()
if (startl > 0) and (startl < len(doc)):
    print(doc[startl:])
结果: 总则 1.1啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 12%啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 1,2狼是怎么叫的:口嗷嗷的、口嗷呜呜、口嗷呜嗷、口呜嗷嗷呜呜嗷。 1,3我们都是小青蛙,呱呱呱呱呱。每天快乐的生活,心中志气大。 2、1、1我们是害虫,我们是害虫。 2、1,2正义的来福临、正义的来福临。 2.1.2.1summer summer is over left 1 secret. 2,1.2,2 in my heart in my heart can't tell you~
Li_Yolanda 2018-11-16
  • 打赏
  • 举报
回复
如果要限制不允许数字后面跟%,应该怎么做呢,再加一层判断吗?
艾力丰特 2018-11-16
  • 打赏
  • 举报
回复
这是在学习?

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧