Java 如何从包含特殊字符的句子中检索单词?

Java 如何从包含特殊字符的句子中检索单词?,java,regex,stanford-nlp,Java,Regex,Stanford Nlp,从以下给定代码: 我想把关系提取为 amod delhi nsubj capital delhi .....etc [amod(delhi-2, -1), nsubj(capital-5, delhi-2), cop(capital-5, is-3), det(capital-5, the-4), root(ROOT-0, capital-5), prep_of(capital-5, india-7)] 阿莫德德里酒店 新德里首都 等 [amod(德里-2,-1),nsubj(首都5,德里-

从以下给定代码: 我想把关系提取为

amod delhi nsubj capital delhi .....etc [amod(delhi-2, -1), nsubj(capital-5, delhi-2), cop(capital-5, is-3), det(capital-5, the-4), root(ROOT-0, capital-5), prep_of(capital-5, india-7)] 阿莫德德里酒店 新德里首都 等 [amod(德里-2,-1),nsubj(首都5,德里-2),cop(首都5,is-3), det(大写-5,the-4),root(root-0,大写-5),prep_of(大写-5, 印度-7)]
如果您的输入看起来确实如此,那么您可以使用

Pattern p = Pattern.compile("(\\w+)\\((\\w*)-\\d+,\\s(\\w*)-\\d+\\)");
//groups                      1       2              3
String data = "[amod(delhi-2, -1), nsubj(capital-5, delhi-2), " +
        "cop(capital-5, is-3), det(capital-5, the-4), root(ROOT-0, " +
        "capital-5), prep_of(capital-5, india-7)]";
Matcher m = p.matcher(data);
while (m.find()) 
    System.out.println(m.group(1) + " " + m.group(2) + " " + m.group(3));

你的输入真的像这样吗?