Regex 正则表达式比较整数并忽略分隔符

Regex 正则表达式比较整数并忽略分隔符,regex,Regex,我想匹配以下模式 1.XXXXXX.XXX.X 组合必须以1开头,并且必须至少包含第二个大于0的数字。只允许数字和点数。 所以下面的例子是正确的 1.000000.000.1 1.000500.000.0 1.020030.030.0 下面的例子是不正确的 1.000000.000.0 1.0000.00.0 1.0000d0.020.0 到目前为止我创造了什么 (?=^[1][\.][0-9]{6}[\.][0-9]{3}[\.][0-9]{1}$) // check pattern 1.

我想匹配以下模式

1.XXXXXX.XXX.X

组合必须以1开头,并且必须至少包含第二个大于0的数字。只允许数字和点数。

所以下面的例子是正确的

1.000000.000.1
1.000500.000.0
1.020030.030.0


下面的例子是不正确的

1.000000.000.0
1.0000.00.0
1.0000d0.020.0

到目前为止我创造了什么

(?=^[1][\.][0-9]{6}[\.][0-9]{3}[\.][0-9]{1}$) // check pattern 1.XXXXXX.XXX.X
(?=^[1-9](?!0000000000$)[0-9][1-9]?\d+$) // check if input is greater than 10000000000
不幸的是,由于输入中的点,第二条语句不起作用。是否可以读取完整的数字并忽略这些点,或者是否有更好的解决方案?

您可以使用

^1\.(?!(?:\.?0)+$)\d{6}\.\d{3}\.\d$

如果初始
1.
后只有零和点,则正则表达式将无法匹配

详细信息

  • ^1\.
    -
    1.
    在字符串开头
  • (?!(?:\.?0)+$)
    -一种消极的前瞻,它将使一个或多个可选的
    序列和一个零(直到字符串末尾)的匹配失败
  • \d{6}
    -6位数字
  • \。
    -一个点
  • \d{3}
    -3位数字
  • \。
    -一个点
  • \d
    -一个数字
  • $
    -字符串结束

天哪。这让人头脑清醒得很快。非常感谢Wiktor!