以下是我尝试使用正则表达式或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}”);但是,我的日食报告错误。
答案 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;
}
}