纯野生Python小白【Mae土豆】 2022-02-12 10:04 采纳率: 60%
浏览 141
已结题

怎么在python中用正则提取指定多个字符串?

类似以下含有2个字符串的列表

ls = ['小明:29;星期一:红色;黄小周:19;星期二:蓝色,绿色;秦小风:33;星期三:青色;周小七:26;星期四:紫色,紫红色;花样小小:18;小康:24;周一天气:晴天;周三天气:下雨', '星期一:红色;黄小周:广州;星期二:蓝色,绿色;星期三:蓝色,青紫色;周小七:26;星期四:紫色,紫红色;花样小小:上海;小康:24;周一天气:阴天;周三天气:下雨;小明:北京;秦小风:33']

从上面列表中的字符串中,提取字符串:(多个字符串,每个字符串中的字符串的顺序是无规律的)

黄小周:19
星期三:青色
周一天气:晴天

黄小周:广州
星期三:蓝色,青紫色
周一天气:阴天

  • 写回答

1条回答 默认 最新

  • ENGineer_zlshuo 2022-02-12 11:06
    关注

    题主朋友,我把两种方法都列举了,请参考

    import re
    
    
    # 不用re的方法
    def func(goal_list, set_names):
        string = str(goal_list).strip('[\'').strip(']\'').replace('\', \'', ';').split(';')
        result = [each for name in set_names for each in string if name in each]
        return result
    
    
    # 用re的方法
    def re_try(goal_list, set_names):
        result = []
        for name in set_names:
            result += re.findall(name+r":\w*,*\w*", str(goal_list), re.DOTALL)
        return result
    
    
    ls = ['小明:29;星期一:红色;黄小周:19;星期二:蓝色,绿色;秦小风:33;星期三:青色;周小七:26;星期四:紫色,紫红色;花样小小:18;小康:24;周一天气:晴天;周三天气:下雨',
          '星期一:红色;黄小周:广州;星期二:蓝色,绿色;星期三:蓝色,青紫色;周小七:26;星期四:紫色,紫红色;花样小小:上海;小康:24;周一天气:阴天;周三天气:下雨;小明:北京;秦小风:33']
    names = ['黄小周', '星期三', '周一天气']
    print(func(ls, names))
    print(re_try(ls, names))
    # ['黄小周:19', '黄小周:广州', '星期三:青色', '星期三:蓝色,青紫色', '周一天气:晴天', '周一天气:阴天']
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月19日
  • 已采纳回答 2月12日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下:
  • ¥15 潜在扩散模型的Unet特征提取
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部