我有这样的正则表达式:
(-?\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,
请帮我更新此正则表达式,以便与测试相匹配
感谢
答案 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
。
答案 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