命令的正则表达式帮助

时间:2017-02-26 10:53:14

标签: java regex parsing command

我需要解析这个命令:

direct print conference <style>:<First Name Last Name>,<First Name Last Name>,<First Name Last Name>,<title>,<conference series name>,<location>,<year>

示例命令将是:

  

直接打印会议ieee:Sergey Brin,Lawrence Page,大型超文本网络搜索引擎剖析,WWW,澳大利亚布里斯班,1998

我的主要问题是(名字姓氏)可以为空,但我如何使用正则表达式?

对于(名字姓)我总是这样做([a-zA-Z] +)([a-zA-Z] +)但是如何用正则表达式确定空的可能位置?

direct print conference ([a-zA-Z]+):([a-zA-Z]+) ([a-zA-Z]+),([a-zA-Z]+) ([a-zA-Z]+),([a-zA-Z]+) ([a-zA-Z]+),([^,]+),([a-zA-Z]+),([a-zA-Z ]+),([0-9]+)

这是我的正则表达式,如果名称不是空的但我如何可以包括空字符到我的正则表达式:

([a-zA-Z]+) ([a-zA-Z]+) OR EMPTY ?

我希望你能帮助我

1 个答案:

答案 0 :(得分:1)

由于您的输入基本上是一个带有特殊开头的CSV,因此您不需要这里的正则表达式,仅String.split()

String input = "direct print conference ieee:Sergey Brin,Lawrence Page,,The Anatomy of a Large-Scale Hypertextual Web Search Engine,WWW,Brisbane Australia,1998";
String[] parts = input.split(":");

String[] values = parts[1].split(",");

for(int i=0; i<values.length; i++) {
    System.out.println(values[i]);
}

live