在CSV文件中匹配年份“2XXX”

时间:2013-10-21 23:01:56

标签: java regex csv

以下是我尝试使用正则表达式或string.split(",")解析的CSV文件中的示例行,我想提取年份(在下面的示例中,2013)。但问题是:年份列索引并不总是17,它也可能是19.我正在考虑循环遍历string.split(",")数组中的每个字符串,并将模式与"2XXX"匹配。

  

9344949,HW488429,10 / 09/2013 05:00:00 AM,039XX W MONROE      ST,0610,入室盗窃,强制      入境,居留,假的,假的,1122,011,28,26,05,1149955,1899326,** ** 2013,2013年10月16日      12:39:00 AM,41.87966141386545,-87.72485045045373,“(41.87966141386545,      -87.72485045045373)“

这可以分解CSV文件中的每一行

Pattern.compile("^([^,]+,){2}\\d{2}/\\d{2}/(\\d{4})([^,]+,){3}([^,]+)");

但是我需要一些帮助来匹配2XXX的每个字符串。试过这个: Pattern patt = Pattern.compile(“^ 2 \ d {3}”);但是,我的日食报告错误。

1 个答案:

答案 0 :(得分:1)

首先,我强烈建议您尝试使用像Boris建议的CSV解析器。

如果你必须按照自己的方式行事,你可以做一些像

这样的事情
String year;
String str = // your csv line
String[] strArr = str.split(",");
for(String s : strArr)
{
    if(s.trim().matches("2\\d{3}"))
    {
        year = s;
        break;
    }
}