如何从一个没有空格的字符串中提取某些特殊字符之间的所有单词?
我有一个字符串,它是通过解析一个鸣叫内容的网站获取的结果,这里是字符串:如何从一个没有空格的字符串中提取某些特殊字符之间的所有单词?
“1 \ TI \ T _ \ TPRP \ TPRP \ T _ \ T2 \ tnsubj \ T _ \ T_ \ N 2 \ tneed \ T_ \ TVB \收费电视控股\ 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_ \锡\锡\ 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 \ tpancake \ T_ \ TNN \ TNN \ T_ \ T6 \ tconj \ T_ \ T_ \ N11 \ TOR \ T_ \ TCC \ TCC \ T_ \ T10 \ TCC \ T_ \ T_ \ n12 \ tf \ t_ \ tNN \ tNN \ t_ \ t10 \ tconj \ t_ \ t_“,”text“:”我需要更多单词,如奇迹或猫或煎饼或法国“
我想要得到所有在“\ t”和“\ t_ \ tNN”之间的单词,换句话说,我想要名词,我希望输出成为“单词”,“奇迹”,“猫”,“煎饼”, “法国”。
我尝试下面的代码:
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串错..它不工作,似乎无法找到我想要的话..
莫非有人告诉我应该如何解决它?
P.S.关于制表符“/ t”,我实际上打印了整个网站的结果,但是当我以字符串的形式得到结果时,我想它们变成反斜杠和“t”而不是制表符。
是'\ t'在字符串中,反斜线和字母 “t” 或制表符?打印时会发生什么? –
这是一个反斜杠和字母t是的,我从来没有试过只打印这两个字符,但是当我打印整个字符串时,它就像我提出的问题一样。 –
然后尝试'\\ t(。*?)\\ t _ \\ tNN'作为您的模式。它可能将'\ t'作为标签读取,并且您需要将反斜杠转义为文字。 – TessellatingHeckler