我需要解析这个命令:
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 ?
我希望你能帮助我
答案 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