Java 2位后字符串上的正则表达式拆分
如何将字符串拆分为有效的货币或双格式。我知道所有的值只有两个小数 范例Java 2位后字符串上的正则表达式拆分,java,regex,string,Java,Regex,String,如何将字符串拆分为有效的货币或双格式。我知道所有的值只有两个小数 范例 String line = "3850.439.00 0.00 260.00 23"; 因此,3850.439.00不正确,需要拆分 我有这个 String[] arr = line.split("\\d+.(\\.\\d{2})"); 但是结果不正确-9.00 0.00 23 所需的结果将是3850.43 9.00 0.00 260.00 23而不是split您可以使用此反向查找正则表达式从输入中获取所有有效匹配项:
String line = "3850.439.00 0.00 260.00 23";
因此,3850.439.00
不正确,需要拆分
我有这个
String[] arr = line.split("\\d+.(\\.\\d{2})");
但是结果不正确-9.00 0.00 23
所需的结果将是
3850.43 9.00 0.00 260.00 23
而不是split
您可以使用此反向查找正则表达式从输入中获取所有有效匹配项:
(?<!\.)\d+(?:\.\d{2})?
(?
(?是在前面的字符为点时断言失败的负查找
Java代码:
final String regex = "(?<!\\.)\\d+(?:\\.\\d{2})?";
final String string = "3850.439.00 0.00 260.00 23";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
}
final String regex=“(?您可能还想在每个空格处拆分?@XtremeBaumer Yes回答得非常好,很好,谢谢您的快速回复