我需要将文本文件拆分成单个句子,但此刻它还会分割小数点。我如何在有一个完整的停止点然后空白处分开。
答案 0 :(得分:1)
如果您希望在分割后在结果中包含.
,则可以尝试在每个空格(\\s
)之前进行拆分,该空格在其前面有句号[.]
。
yourString.split("(?<=[.])\\s+");
样本
for (String s:"ab. cd 1.3 ef. gh".split("(?<=[.])\\s+"))
System.out.println(s);
输出:
ab.
cd 1.3 ef.
gh
如果您不想在结果中加入.
,请跳过look-behind mechanism并使用[.]\\s+
答案 1 :(得分:0)
将此正则表达式用于拆分,以便它不会在数字之间选择任何内容。这个正则表达式意味着一个完整的句号后面没有数字。
\\.(?!\\d)
示例:
String line = "this a. sample 100.100 test.line.";
String []sentences = line.trim().split("\\.(?!\\d)");
输出:
this a
sample 100.100 test
line
您可能希望通过在拆分周围添加可选的\\s*
来改善这一点。
答案 2 :(得分:0)
String parts[] = str.split("\\. " );
应该有效