此查询
/(?:[^\,]*\,){10}([^,]*)/
返回所有值,直到第10个值,但我正在寻找一个只给出第10个值的查询。有人可以帮忙吗?
答案 0 :(得分:2)
虽然您可以使用正则表达式解析CSV,或使用String#split解析,但为什么要重新发明轮子?你可以使用很好的CSV libraries,他们会为你处理很多特殊情况。例如,您的解决方案不会使用逗号处理带引号的字符串。也许你还不需要它,但是你可能还要防范将来需要它。以下是您的表现方式:
QTranslator
答案 1 :(得分:1)
public String get10thElement(String input) {
// String input = "\"20266547:20000256\",\"-\",\"20000256\",\"20266547\",\"-\",9349,\"-\",\"-\",\"2016-01-23\",\"04:41:39\",\"GET /dojo/1.10.4-std/dojo/fx.js HTTP/1.1\",200,\"3433\",\"SCRUB_1_URL\"";
String[] elements = input.split(",");
return elements[9];
}
您已将此标记为Java。使用拆分方法。
答案 2 :(得分:0)
来自Logentries.com documentation,我认为您需要这些内容:
where(/(?:[^\,]*\,){10}(?P<tenthItem>([^,]*))/)
这会将第十个匹配项指向名为tenthItem
的变量。请仔细注意这里使用的语法:
(?P<tenthItem>([^,]*))
这表示您希望匹配([^,]*)
的任何内容进入名为tenthItem
的变量。