V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
twogoods
V2EX  ›  程序员

字符串匹配

  •  
  •   twogoods · 2017-04-24 15:12:49 +08:00 · 1842 次点击
    这是一个创建于 2569 天前的主题,其中的信息可能已经有所发展或是发生改变。
    "139****2301: 江苏 扬州 江苏移动全球通卡"
    "{mobile}: {pr} {city} {property}"
    最终得到 mobile=139****2301 , pr=江苏 等
    正则表达式能实现吗?如何写
    11 条回复    2017-04-25 16:46:49 +08:00
    QAPTEAWH
        1
    QAPTEAWH  
       2017-04-24 15:24:54 +08:00
    不要用正则表达式。
    twogoods
        2
    twogoods  
    OP
       2017-04-24 15:30:11 +08:00
    @QAPTEAWH 现在是我不能写死,"{mobile}: {pr} {city} {property}" 这个类似于配置,配置好了我通过这个规则拿到里面的值
    imn1
        3
    imn1  
       2017-04-24 15:31:42 +08:00
    查阅正则手册 (?<p>)的用法
    QAPTEAWH
        4
    QAPTEAWH  
       2017-04-24 15:32:58 +08:00
    那就把规则也作为输入。
    konia
        5
    konia  
       2017-04-24 16:00:25 +08:00 via iPhone
    ([0-9]+): ([^ ]+) ([^ ]+) ([^ ]+)
    twogoods
        6
    twogoods  
    OP
       2017-04-24 16:10:05 +08:00
    @konia 谢谢,可以匹配,但不知道如何截取那四个信息
    geelaw
        7
    geelaw  
       2017-04-24 16:16:43 +08:00
    @twogoods 很多语言会在每个左括号开始的地方建立一个 group ,你可以从 group 里面拿数据。

    另外你不能 result.split(' ') 然后拿数据吗?
    manhere
        8
    manhere  
       2017-04-24 16:21:34 +08:00
    backreference
    mapleray
        9
    mapleray  
       2017-04-24 16:26:18 +08:00
    (?<name>exp)
    suyingtao
        10
    suyingtao  
       2017-04-25 13:15:40 +08:00 via iPhone
    按空格拆分成一个数组,第一元素删掉最后一位。
    twogoods
        11
    twogoods  
    OP
       2017-04-25 16:46:49 +08:00 via Android
    @suyingtao 哥,不能写死,我希望通过这种规则处理各种各样的字符串啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1023 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:37 · PVG 03:37 · LAX 12:37 · JFK 15:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.