gpt4 book ai didi

java - 用于提取信息的正则表达式

转载 作者:行者123 更新时间:2023-12-02 06:45:28 24 4
gpt4 key购买 nike

我有一个具有以下数据格式的 csv 文件

123,"12.5","0.6","15/9/2012 12:11:19"

这些数字是:

  • 订单号
  • 价格
  • 折扣率
  • 销售日期和时间

我想从线路中提取这些数据。

我尝试过正则表达式:

String line = "123,\"12.5\",\"0.6\",\"15/9/2012 12:11:19\"";
Pattern pattern = Pattern.compile("(\\W?),\"([\\d\\.\\-]?)\",\"([\\d\\.\\-]?)\",\"([\\W\\-\\:]?)\"");
Scanner scanner = new Scanner(line);
if(scanner.hasNext(pattern)) {
...
}else{
// Alaways goes to here
}

看起来我的模式不正确,因为它总是转到 else 部分。我做错了什么?有人可以为此提出解决方案吗?

非常感谢。

最佳答案

具体拆分似乎有点过于复杂,您应该尝试按元素之间最明显的公共(public)分隔符(逗号)进行拆分。也许你应该尝试这样的事情:

    final String info = "123,\"12.5\",\"0.6\",\"15/9/2012 12:11:19\"";
final String[] split = info.split(",");
final int orderNumber = Integer.parseInt(split[0]);
final double price = Double.parseDouble(split[1].replace("\"", ""));
final double discountRate = Double.parseDouble(split[2].replace("\"", ""));
final String date = split[3].replace("\"", "");

关于java - 用于提取信息的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18684440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com