darchir 发表于 2022-4-3 11:51:25

大佬帮解答一下正则表达式的问题

带1-2位小数的正数或负数
^(-)?d+(.d{1,2})?$

新手求教: 中间这个加号是啥作用, 不是应该是匹配一次或多次的意思吗?放在这里也不对啊, 难道还能没有整数位?

傻眼貓咪 发表于 2022-4-3 12:22:49

试试这个:
^(\-)?\d+(\.\d{1,2})$

^(\-)? 匹配输入字符串的开始位置,将字符 "-" 标记为或特殊字符,匹配零次或一次。
\d+ 匹配一个数字字符,等价于 。"+" 是匹配前面的子表达式一次或多次。
(\.\d{1,2}) 将字符 "." 标记为或特殊字符,\d{1,2} 为匹配一个或两个数字字符。
$ 匹配输入字符串的结束位置。

isdkz 发表于 2022-4-3 12:30:25

本帖最后由 isdkz 于 2022-4-3 12:38 编辑

因为 . 在正则表达式中是匹配任意字符,

你想匹配点这个字符的话得转义,用 \.,

还有 ? 是匹配0次或1次,所以匹配小数部分那里不要用 ?,

只限定一个 字符 也没有必要用分组

-?\d+\.\d{1,2}
页: [1]
查看完整版本: 大佬帮解答一下正则表达式的问题