如果值大于99,则坐标正则表达式不匹配

时间:2014-11-30 04:04:35

标签: regex

我有这样的正则表达式:

(-?\d{1,2}\.\dE-\d+|-?\d{1,2}\.?\d*)\s(-?\d{1,2}\.\dE-\d+|-?\d{1,2}\.?\d*)\s?0?\s?0?,?

我用

测试
99.972534 -6.147714,

这与所有测试相匹配。但是当我使用

100.972534 -6.147714,

所有匹配但是100的'1',结果如下:

00.972534 -6.147714,

请帮我更新此正则表达式,以便与测试相匹配

感谢

3 个答案:

答案 0 :(得分:1)

(-?\d{1,2}\.\dE-\d+|-?\d{1,3}\.?\d*)\s(-?\d{1,2}\.\dE-\d+|-?\d{1,2}\.?\d*)\s?0?\s?0?,?
                           ^

试试这个。查看演示。它只接受2位数字。使其接受3

http://regex101.com/r/hQ9xT1/30

答案 1 :(得分:1)

您的正则表达式通过\d{1,2}指定1或2个前导数字,但100 3 位数。

将所有\d{1,2}更改为\d{1,3}

答案 2 :(得分:1)

在你的正则表达式的开头,你有" \ d {1,2}",它只匹配1到2位数。所以,您可能希望将其更改为" \ d +" (1次或更多次)或" \ d {1,3}" (如果你想匹配从1到3位数)。这些都是在Pattern类的API页面上解释的:https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html