dream7758522
V2EX  ›  问与答

正则求助一下

  •  
  •   dream7758522 · Jun 24, 2017 via Android · 2105 views
    This topic created in 3421 days ago, the information mentioned may be changed or developed.
    {a:123aaa111}{b:456aaa111}{c:789aaa111}{d:012aaa111}
    想提取中括号中得第一组数字,
    用正則
    {.*?\d+
    匹配出的是
    {a:123
    {b:456
    {c:789
    各位朋友能指导一下吗
    9 replies  •  2017-06-25 07:23:34 +08:00
    vmebeh
    vmebeh
    Jun 24, 2017 via iPhone
    1
    {.*?(\d+)
    dream7758522
    dream7758522
    OP
    Jun 24, 2017 via Android
    2
    @vmebeh 一样,没匹配出来
    vmebeh
    vmebeh
    Jun 24, 2017 via iPhone❤️1
    3
    匹配到之后需要再多一部取出括号内的匹配
    如 Python
    re.search(r'\{.*?(\d+)', '{a:123aaa111}{b:456aaa111}{c:789aaa111}{d:012aaa111}').group(0)={a:123
    group(1)=123
    group(2)={b:456}
    group(3)=456
    ...

    其他语言不清楚
    gogohigh
    gogohigh
    Jun 24, 2017❤️1
    4
    前缀长度能确定的话可以用环视,不能确定的话就只能分组捕获了
    比如.*?(\d+)
    输出 group1
    cxbig
    cxbig
    Jun 24, 2017❤️1
    5
    也不说用什么语言。。。
    通常都是加括号来取对应内容
    ethanlu
    ethanlu
    Jun 24, 2017❤️1
    6
    (\d{3})(?=aaa) 好了,http://regexr.com/3g7qq
    songz
    songz
    Jun 25, 2017
    7
    /\d{3}(?=\w{3})/g
    hzcxdgioa
    hzcxdgioa
    Jun 25, 2017 via Android
    8
    (?<=:)(\d*)
    hzcxdgioa
    hzcxdgioa
    Jun 25, 2017 via Android
    9
    (?<=:)(\d+)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4767 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 01:35 · PVG 09:35 · LAX 17:35 · JFK 20:35
    ♥ Do have faith in what you're doing.