Java 获取十进制数正则表达式
我试图创建一个简单的程序来练习解析数据。我将向您展示我的代码,然后解释我尝试执行的操作:Java 获取十进制数正则表达式,java,Java,我试图创建一个简单的程序来练习解析数据。我将向您展示我的代码,然后解释我尝试执行的操作: String data = "<span id=\"yfs_l84_ibm\">176.85</span>"; Pattern pattern = Pattern.compile("\\d+([.]\\d{2})?"); Matcher matcher = pattern.matcher(data); if (matcher.find()) System.out.printl
String data = "<span id=\"yfs_l84_ibm\">176.85</span>";
Pattern pattern = Pattern.compile("\\d+([.]\\d{2})?");
Matcher matcher = pattern.matcher(data);
if (matcher.find())
System.out.println(matcher.group(1));
String data=“176.85”;
Pattern=Pattern.compile(“\\d+([.]\\d{2}”);
Matcher Matcher=pattern.Matcher(数据);
if(matcher.find())
系统输出println(匹配器组(1));
我所要做的就是打印出“176.85”。小数点后总是有两个数字,小数点前总是有一个或多个数字。我不需要担心负数,尽管如果我的正则表达式处理了负数也不会有什么坏处。我的代码进入if
,但打印null
。我的正则表达式有问题吗?下面是我尝试过的其他正则表达式。它们还打印null
,如果,则从不进入
^[+-](\d+(.?\d+)。\d+)$
/^\d+。?\d*$/
/\d+。?\d*/
对于其表达式功能:
(\\d+([.]\\d{2})?)
对于其表达式功能:
(\\d+([.]\\d{2})?)
嗯,试着把模式改成这个\\d+\.\\d{2}
和matcher.group(0)
我试过了,效果很好:)嗯,试着把模式改成这个\\d+\\.\\d{2}
和matcher.group(0)
我试过了,效果很好:)如果您希望将数字和+/-作为前缀进行匹配,请使用:
[-+]?\\d{1,4}\\.\\d{2}
并提取组0。若要将数字和+/-作为前缀进行匹配,请使用:
[-+]?\\d{1,4}\\.\\d{2}
并提取组0。请记住,此正则表达式将匹配小数点前超过4位的数字。:)是的,帕特先生:),我肯定数字会超过1000,所以我没有限制,但逗号后只有2位。@A-SM如果小数点前有逗号(即15570.28),这就行了。我想:\\d+\\,?\\d+\.\\d{2}
请记住,此正则表达式将匹配小数点前超过4位的数字。:)是的,帕特先生:),我肯定数字会超过1000,所以我没有限制,但逗号后只有2位。@A-SM如果小数点前有逗号(即15570.28),这就行了。我想:\\d+\,?\\d+\.\\d{2}