• python正则表达式-匹配用符号分割的多个字符串


    代码

    import re
    
    text = "今天我玩了英雄联盟的很多英雄,比如“德玛西亚”、“德玛西亚皇子”、“德邦总管”等等,我玩了穿越火线的许多枪,比如“巴雷特”、“马来剑”等等。"
    pattern = r"比如[“]([u4e00-u9fa5])+[”](、[“]([u4e00-u9fa5])+[”])*"
    res = re.finditer(pattern, text)
    print(res)
    for span in res:
        origin_text = span.group()
        print(origin_text)
        start = text.index(origin_text)
        match_text = re.sub("比如|“|”","",origin_text).split("、")
        for wg in match_text:
            cur_start = origin_text.index(wg)
            abs_start = start + cur_start
            abs_end = abs_start + len(wg)
            print(wg, abs_start, abs_end)
    

    结果

    <callable_iterator object at 0x000002787DEB3C50>
    比如“德玛西亚”、“德玛西亚皇子”、“德邦总管”
    德玛西亚 18 22
    德玛西亚皇子 25 31
    德邦总管 34 38
    比如“巴雷特”、“马来剑”
    巴雷特 57 60
    马来剑 63 66
    
  • 相关阅读:
    第4周课前测试考试题
    第3周课前测试考试题
    200行自定义异步非阻塞Web框架
    Web框架之Tornado
    redis总结
    Django之ModelForm组件
    Rabbitmq队列
    Git分布式版本控制系统
    Django REST framework
    python之路1
  • 原文地址:https://www.cnblogs.com/xiximayou/p/14274861.html
Copyright © 2020-2023  润新知