问题
<span style="font-size:18px;"> tagged=tagData(data, tagger1, tagger2);//tagged是我NER出来的文档。 //内容如The fate of [ORG Lehman Brothers] , Secretary [PER Henry M. Paulson Jr] . //注意上面,逗号和句号前面都有空格,我的目的就是要去掉他。 OutFile out = new OutFile(outFiles.elementAt(fileId)); out.println(tagged); out.close(); </span>
<span style="font-size:18px;">out.out.toString().replace(",",".");//只是因为找出来String类型的才有replace方法</span>
<span style="font-size:18px;"> tagged.replaceAll("\\s*|\t|\r|\n.","."); out.println(tagged); out.close(); </span>困扰我一晚上,我就各种正则的套,因为replaceAll前面是正则的形式。
分析:API如下:
public String replaceAll(String regex, String replacement)
调用此方法的 str.replaceAll(regex, repl) 形式与以下表达式产生的结果完全相同:
Pattern
.compile
(regex).matcher
(str).replaceAll
(repl)
注意,在替代字符串中使用反斜杠 (\) 和美元符号 ($) 与将其视为字面值替代字符串所得的结果可能不同;请参阅
Matcher.replaceAll
。如有需要,可使用
Matcher.quoteReplacement(java.lang.String)
取消这些字符的特殊含义。
regex
- 用来匹配此字符串的正则表达式replacement
- 用来替换每个匹配项的字符串
正确解决
<span style="font-size:18px;"> String str=tagged.replaceAll("\\s,",","); String str2=str.replaceAll("\\s\\u002E","."); //tagged.replaceAll("\\s*|\t|\r|\n.","."); out.println(str2); out.close(); </span>深藏功与名。
关于一个困扰一晚上的bug -- java 返回值问题,布布扣,bubuko.com
原文地址:http://blog.csdn.net/nickyzhi/article/details/37919527