仅当存在另一个元素时如何将元素放入正则表达式中

时间:2018-10-17 07:51:43

标签: regex

我需要处理长模式,以检查输入数字是否遵循我的模式。长期可能是:

1000.00
1000
1000.0
1.00
10

int部分不是位数的限制,但小数部分最多可以是两位数。我使用此正则表达式:

^[0-9]+(,|.){0,1}(00){0,2}$

此正则表达式可用于99%的输入,因为如果我传递此值100.,则正则表达式将使用此值。任何人都可以帮助我修改此正则表达式,以便用户放置.时必须放置小数部分?

1 个答案:

答案 0 :(得分:1)

(,|.){0,1}匹配可选的,或任何字符(字符类外部的未转义的.匹配除换行符之外的任何字符),然后匹配(00){0,2}也可以匹配一个空字符串(零个,一个或两个00子字符串)。

您需要

^[0-9]+(?:[,.]0{1,2})?$

请参见Location schema documentation

详细信息

  • ^-字符串的开头
  • [0-9]+-1个以上数字
  • (?:[,.]0{1,2})?-的可选序列
    • [,.]-逗号或点(在字符类中时,点无需转义)
    • 0{1,2}-1或2个零点
  • $-字符串的结尾。