正则表达式与百分比和int

时间:2017-05-04 11:17:56

标签: regex

Hy,这里只是一个快速的,有没有人知道一个百分比和另一个数字的正常表达?我想在XML Schema中使用它..

应该匹配:

-1
100.00
20.00
20.0
10.0
20
99.0
66.4
0.00

所以它应匹配百分比OR -1

我的方法不起作用......

([/-1]{1}|\d{1,3}\.\d{1,2})

谢谢!

2 个答案:

答案 0 :(得分:1)

对于正则表达式,我通常使用并建议MDN作为参考。

如果我明白你想要做什么,那么这对你有用: /(?=\s+|^)(?:-1|100(?:\.0+)?|\d{1,2}(?:\.\d{1,})?)(?=\s+)/gm

这将匹配之前和之后没有任何内容或空格的字符串 (?=\s+|^) content (?=\s+) 如果您希望每个数字都是每一行上唯一的数字,您可以选择将其更改为^(?: content)$

内容是以下任何内容:

  • -1(-1
  • 100可选地包含"。"和1个或多个0(100(?:\.0+)?
  • 1或2位数字,可选地后跟"。"和1个或多个小数(\d{1,2}(?:\.\d{1,})?

您可以将{1,}的结尾更改为{1,X},其中X是您要匹配的最大小数位数。

要匹配结果,请检查RegExr

答案 1 :(得分:0)

(-1\n|\b(100|\d{1,2})(\n|(\.\d{1,2})))

说明:


(-1\n|                  // when not percentage OR ...
     \b                 // word boundary - must not be other symbols in front 
       (100|            // when integer part is equal to 100 OR ...
           \d{1,2}      // when integer part is number between 0 and 99
       )                // then after integer part must follow:
       (\n|             // new line symbol OR ...
           (\.\d{1,2})  // dot symbol AND fractional part composed of 0 and 99
       )
)