我的字符串如下所示,我想通过并删除不包含标签_JJ或_NN的行。
输入:
Hello_NN
and_CC
Happy_JJ
Birthday_NN
to_TO
me_NN
!_!
输出:
Hello_NN
Happy_JJ
Birthday_NN
me_NN
答案 0 :(得分:2)
方法1:
1)创建一个处理每一行的循环。
2)在循环中,使用String.contains()函数查看该行是否包含“_JJ”或“_NN”
3)如果条件失败,请跳过该行。
4)如果条件通过,则输出该行。
方法2:
在regex101.com上小提琴,直到你得到正则表达式:
foo = bar.replaceAll( "(?m)^.+(?<!JJ|NN)(\n|$)", "" );
答案 1 :(得分:1)
一种解决方案是将您想要的行添加到新字符串中,而不是从已有的字符串中删除:
String newOutput = "";
while(! endOfInput){ // While you have stuff to read
String temp = input.readLine(); // Get line
if(temp.contains("_JJ") || temp.contains("_NN"){ // If the line contains something we want to keep
newOutput += temp + "\n"; // Add it to new output, with new line marker
}
}
// Display new output here.