V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lollipop43
V2EX  ›  问与答

这个正则表达式有问题嘛?

  •  
  •   lollipop43 · 2021-03-03 22:53:41 +08:00 · 804 次点击
    这是一个创建于 1372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    PAT 1108 这道题里有一个定义,合法的输入是: A legal input is a real number in [−1000,1000] and is accurate up to no more than 2 decimal places. 我写的表达式是这样的,有漏网之鱼嘛 (1000)|(-1000)|(-?\d{1,3}(.\d{0,2})?)

    2 条回复    2021-03-03 23:57:07 +08:00
    noqwerty
        1
    noqwerty  
       2021-03-03 23:47:25 +08:00
    1. 小数点需要转义,用\.
    2. 应该要加上^$吧?不然 1001 里面的 100 也能被第三部分匹配到。
    3. 另外类似 001 这种数字也能被匹配到,不知道是否符合要求。
    imdong
        2
    imdong  
       2021-03-03 23:57:07 +08:00
    ^-?([1-9][0-9]{0,2})?[0-9]$

    这样应该更好一些,至于 -0 的问题,如果要解决,就复制成两段.

    ^([1-9][0-9]{0,2})?[0-9]|-([1-9][0-9]{0,3})$
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.