「已注销」 2019-08-29 04:57 采纳率: 0%
浏览 481

python同一行 获取不同数据怎么写?正则

python

例如

PRINTABLE:张三TEL;VOICE:13882200000TEL:+8618674060000
PRINTABLE:王二TEL;VOICE:13987200000
PRINTABLE:李四TEL;VOICE:13987200000TEL:+861549860000TEL:18674060000

我需要匹配上面的电话号码.有些只有一个.但是有些是连个.或者更多..
请问怎么写正则匹配呢??

我写的遇到有多个号码的就会出问题.

  • 写回答

2条回答 默认 最新

  • J4cks0n 2019-08-29 06:30
    关注

    PRINTABLE:([\u4e00-\u9fa5]+)TEL;VOICE:([0-9]+)((TEL:[+]*[0-9]*)*)

    没有按照电话号码的标准来嗷,不过也差不多

    评论
  • crifan 2019-12-16 02:05
    关注

    A:
    简答:同一行内,获取不同数据,用re.findall
    注:而不是search,我最开始也差点搞错,写成search多个的group了,发现不对,改为findall,即可

    详解:

    核心代码:

        multipleLinePhoneStr = """PRINTABLE:张三TEL;VOICE:13882200000TEL:+8618674060000
    PRINTABLE:王二TEL;VOICE:13987200000
    PRINTABLE:李四TEL;VOICE:13987200000TEL:+8615498601234TEL:18674060000"""
        # phoneRule = "((\+86)?\d{11})"
        phoneRule = "((VOICE:)|(TEL:))((\+86)?\d{11})"
        matchPhoneList = re.findall(phoneRule, multipleLinePhoneStr, re.MULTILINE)
    

        inputPhoneStrList = [
            "PRINTABLE:张三TEL;VOICE:13882200000TEL:+8618674060000",
            "PRINTABLE:王二TEL;VOICE:13987200000",
            "PRINTABLE:李四TEL;VOICE:13987200000TEL:+8615498601234TEL:18674060000",
        ]
        for curIdx, eachInputPhoneStr in enumerate(inputPhoneStrList):
            phoneRule = "((VOICE:)|(TEL:))((\+86)?\d{11})+"
            matchPhoneList = re.findall(phoneRule, eachInputPhoneStr, re.DOTALL)
    

    VSCode调试结果:
    图片说明

    完整演示代码,详见我的帖子:
    【问题解答】Python提取一个或多个电话号码

    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 宝塔面板一键迁移使用不了
  • ¥15 求一个按键录像存储到内存卡的ESP32CAM代码
  • ¥15 如何单独修改下列canvas推箱子代码target参数?,插入图片代替其形状,就是哪个绿色的圆圈每关用插入的图片替代
  • ¥20 四叉树的创建和输出问题
  • ¥15 javaweb连接数据库,jsp文件加载不出来
  • ¥15 matlab关于高斯赛德尔迭代的应用编撰。(相关搜索:matlab代码|迭代法)
  • ¥15 损失匹配问题,求解答
  • ¥15 3500常用汉字书法体检测数据集下载
  • ¥15 odoo17在制造模块或采购模块良品与次品如何分流和在质检模块下如何开发
  • ¥15 Qt音乐播放器的音乐文件相对路径怎么写
手机看
程序员都在用的中文IT技术交流社区

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

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

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

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

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

客服 返回
顶部