每当我在一个句子中找到缩写词(比如Mr.,prf。等)时,我想删除' \ n'每个句子末尾包含缩写词的字符。欢迎任何想法。INPUT OUTPUT
到目前为止我的想法是:
List<String> pres = Arrays.asList("dl","Dl", "Prf", "Ing");
for(int i=1;i<4;i++){
if (z.contains(pres.get(i)))
f=z.indexOf(pres.get(i));
z.replaceFirst("\\n"," ");//how i can use my f here to get rid of next new line...?
}
答案 0 :(得分:0)
这是一个近似解决方案,但不知道您要检查的完整缩写列表。您可以搜索以下模式,并替换为第一个捕获组:
((?:Mr|Mrs|Dr)\.[^.]+\.)\n
这将识别任何句子中的 last 缩写,该句子以点结尾,后面紧跟\n
换行符。请注意,在单个句子中有多个缩写的情况下,它只会匹配最后一个缩写。
String input = "Here is a sentence. Said Mrs. Canopoy, here is another sentence about Mr. Potato Head.\r\nHere is a third sentence.";
System.out.println(input);
input = input.replaceAll("((?:Mr|Mrs|Dr)\\.[^.]+\\.)\\r\\n", "$1");
System.out.println(input);
我只检查Mr.
,Mrs.
或Dr.
,但您可以根据需要添加任意数量的缩写。
答案 1 :(得分:0)
请使用:
String s = "Mike and Mr.\nDave take dinner.\nThat is very important.\nMe and Ing.\nMike bla bla..";
s = s.replaceAll("(Mr.|Ing.)\n", "$1 ");