gpt4 book ai didi

ruby-on-rails - ruby 正则表达式 : 1-2 digits required after period if period is present

转载 作者:数据小太阳 更新时间:2023-10-29 08:43:48 28 4
gpt4 key购买 nike

我正在尝试创建一个匹配以下内容的正则表达式:

  • 一个或多个数字
  • 允许在第一个数字后有 0 到 1 个句点
  • 如果有句号
    • 句点后需要 1 - 2 位数字

这是我目前使用的正则表达式,它并不适用于所有情况:

/\d{1,}\.{0,1}\d{1,2}/

所有这些测试用例都应该通过

1.9
1
12
1211.1
121234.14

所有这些测试用例都不应该通过

z
z1
z.5
z.55 # no letters
.9 # required one or more digits before the period if period is present
34. # required 1-2 digits after period if period is present
4..3
4..55 # only 1 period
4.333 # only 1-2 digits after period
111,222.44 # no comma

最佳答案

已编辑

我认为它会解决..

/^\d{1,}(\.\d{1,2}){0,1}$/

我的测试用例:

2.3.0 :129 > regex = /^\d{1,}(\.\d{1,2}){0,1}$/
=> /^\d{1,}(\.\d{1,2}){0,1}$/
2.3.0 :161 > regex.match("1.9")
=> #<MatchData "1.9" 1:".9">
2.3.0 :162 > regex.match("1")
=> #<MatchData "1" 1:nil>
2.3.0 :163 > regex.match("12")
=> #<MatchData "12" 1:nil>
2.3.0 :164 > regex.match("1211.1")
=> #<MatchData "1211.1" 1:".1">
2.3.0 :165 > regex.match("121234.14")
=> #<MatchData "121234.14" 1:".14">
2.3.0 :166 > regex.match("z")
=> nil
2.3.0 :167 > regex.match("z1")
=> nil
2.3.0 :168 > regex.match("z.5")
=> nil
2.3.0 :169 > regex.match("z.55")
=> nil
2.3.0 :170 > regex.match(" .9")
=> nil
2.3.0 :171 > regex.match("34.")
=> nil
2.3.0 :172 > regex.match("4..3")
=> nil
2.3.0 :173 > regex.match("4..55")
=> nil
2.3.0 :174 > regex.match("4.333")
=> nil
2.3.0 :175 > regex.match("111,222.44")
=> nil

关于ruby-on-rails - ruby 正则表达式 : 1-2 digits required after period if period is present,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38835144/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com