此人真菜 2022-03-16 17:36 采纳率: 75.8%
浏览 111
已结题

如何用正则来提取最长文本

有一列数据(来自excel),如何通过正则表达式或者pandas(优先pandas),让最低层级保留。
例如1.1为1的下层,则删除1,保留1.1。
又例如3.1.1.1是3、3.1、3.1.1的下层,所以删除3、3.1、3.1.1

1
1.1
1.2
2
2.1
3
3.1
3.1.1
3.1.1.1
3.1.1.2
3.2

所以,最终输出的结果如

1.1
1.2
2.1
3.1.1.1
3.1.1.2
3.2
  • 写回答

3条回答 默认 最新

  • ~白+黑 Python领域新星创作者 2022-03-16 21:53
    关注
    
    a=["1","1.1","1.1.1.1","2","2.1","2.2","2.3","3","3.1","3.2.1","3.1.1.1.1","3.1.2","3.1.3",]
    b=set()
    for i in range(len(a)):
        temp=a[i]
        for k in range(i+1,len(a)):
            if a[k].startswith(a[i]):
                temp = a[k] if len(a[k])>=len(a[i]) else a[i]
        b.add(temp)
    
    print(b)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 3月16日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境