分裂成句子Java

use*_*170 1 java regex

我想把文本分成句子.我的文字包含\n两者之间的字符.我希望在\n.(点)完成分割.我不能BreakIterator用作分裂条件,因为它是一个空格后跟一个句号(在我希望分割的文本中,这是没有必要的).

示例:

i am a java programmer.i like coding in java. pi is 3.14\n regex not working
Run Code Online (Sandbox Code Playgroud)

应输出:

['i am a java programmer', 'i like coding in java', 'pi is 3.14', 'regex not working']
Run Code Online (Sandbox Code Playgroud)

我尝试了一个简单的正则表达式,它分裂\n.:

[\\\\n\\.]
Run Code Online (Sandbox Code Playgroud)

这不起作用,但指定单独工作.

\\\\n
\\.
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以提供一个将分裂的正则表达式\n.

另一个问题是我不希望在像5.6这样的小数的情况下进行拆分.

Boh*_*ian 9

这个java正则表达式应该是它:

"\n|((?<!\\d)\\.(?!\\d))"
Run Code Online (Sandbox Code Playgroud)

点数:

  • \n永远不需要逃避
  • 圆点周围看起来很奇怪的东西是负面看,并且意味着"上一个/下一个字符不能是一个数字

这个正则表达式说:"要么是换行符,要么是不在数字前面或后跟的字面点


仅供参考,除了括号本身之外,您不需要转义字符类中的字符(在[]之间).

  • @Bohemian怎么样**一些文字的东西** (2认同)