【发布时间】:2023-04-07 12:41:02
【问题描述】:
我无法使用正则表达式从预定义的输入字符串中提取(双)数字。
字符串是:
String inputline ="Neuer Kontostand";"+2.117,68";
为了成功解析数字,我需要抑制前导+,同时保留可选的-。另外我必须在数字之前/之后切断"。
我当然可以进行多步字符串操作,但是有谁知道如何使用一个正则表达式以更优雅的方式完成所有操作?
到目前为止我尝试了什么:
Pattern p = Pattern.compile("-{0,1}[0-9.,]*");
Matcher m = p.matcher(inputline);
String substring =m.group();
【问题讨论】:
-
用括号 ([0-9.,]*) 将要提取的部分作为组括起来
-
1.
{0,1}可以写成?; 2. 你的正则表达式会匹配很多不是数字的东西(例如-或...甚至是空白字符串)。
标签: java regex function debugging parsing