如何在拆分中允许引用的数据?

时间:2016-04-22 18:02:05

标签: java regex split

我正在研究一个可以测量两个城市之间距离的项目。我试图设置它,以便用户输入一行命令来搜索两个城市,例如“距离达拉斯纽约市”。现在我有了它,以便使用.split()方法将该行拆分为一个字符串数组,但是它会在空格和标点符号上分割,这意味着名称长于一个单词的城市将无效。理想情况下,我希望它能够输入“远距离达拉斯”纽约市“”,但我不知道该怎么做。

PowerShell

2 个答案:

答案 0 :(得分:1)

也许你可以使用它:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Gather timeout="10" numDigits="5">
        <Say>Please enter your pin number and then press star.</Say>
    </Gather>
</Response>

答案 1 :(得分:0)

如果您使用Pattern中的Matcherjava.util.regex,则可以使用".*?"|\S+这样的正则表达式来标记输入,然后您可以使用多个引号字城市。 Regex101 Tested

首先在代码开头编译正则表达式:

final Pattern p = Pattern.compile("\".*?\"|\\S+");

然后像这样生成arg

String[] arg = new String[3];
Matcher m = p.matcher(in.nextLine());
for (int i = 0; i < arg.length && m.find(); i++) {
    arg[i] = m.group().replace("\"", "");
}