我有一个字符串,它是从解析推文内容的网站获取的结果,这里是字符串:
"1\tI\t_\tPRP\tPRP\t_\t2\tnsubj\t_\t_\n2\t需要\t_\tVB\tVBP\t_\t0\tnull\t_\t_\n3\tmore\t_\tJJ\tJJR\t_\t4\tamod\t_\t_\n4\twords\t_\tNN\tNNS\t_\t2\tdobj\t_\t_\n5\tlike\t_\tIN\tIN\t_\t4\tprep\t_\t_\n6\tmarvel\t_\tNN\tNN\t_\t5\tpobj\t_\t_\n7\tor\t_\tCC\tCC\t_\t6\tcc\t_\t_\n8\tcat\t_\tNN\tNN\t_\t6\tconj\t_\t_\n9\tor\t_\tCC\tCC\t_\t6\tcc\t_\t_\n10\t煎饼\t_\tNN\tNN\t_\t6\tconj\t_\t_\n11\tor\t_\tCC\tCC\t_\t10\tcc\t_\t_\n12\t法国\t_\tNN\tNN\t_\t10\tconj\t_\t_", "文本": "我需要更多的词,比如奇迹、猫、煎饼或法国"
我想要得到“\t”和“\t_\tNN”之间的所有单词,换句话说我想要名词,我想要输出是“words”,“marvel”,“cat” 、“煎饼”、“法国”。
我尝试了下面的代码:
private void regex(String s){
if(s.indexOf("error") >= 1){
Toast.makeText(this, "Sorry the site failed again it's not my fault :(",
Toast.LENGTH_SHORT).show();
}
else{
Pattern pattern = Pattern.compile("\t(.*?)\t_\tNN");
Matcher matcher = pattern.matcher(s);
System.out.println(s);
if (matcher.find()) {
String result = matcher.group(1);
System.out.println(result);
}
}
}
我确信我的pattern.compile字符串是错误的..它不起作用,似乎找不到我想要的单词..
谁能告诉我该如何解决?
附注关于类似于“/t”的制表符,我实际上打印了整个网站作为结果,但是当我得到字符串结果时,我猜它们只是一个反斜杠和一个“t”,而不是仍然是制表符。
最佳答案
关于java - 如何从没有空格的字符串中提取某些特殊字符之间的所有单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30718713/