拆分文本正则表达式Java

时间:2015-10-23 03:29:56

标签: java regex split

嗨,我有一个我要分割的文本文件。

  

第一章:八月的灰色温暖的夜晚降临城市,温暖的空气,夏天的记忆,在街上流传。街道因周日的休息而关闭,满是鲜艳的人群。就像照亮了珍珠的珍珠一样,灯光从它们高高的山顶上闪耀着生命的纹理,在它下面,不断变换的形状和色调,被送到温暖的灰色傍晚空气中,一种不变的不断杂音。   第二章:两名年轻人从拉特兰广场下山。在他们身上只是结束了长篇独白。另一个人走在路的边缘,有时不得不踩到路上,由于他的同伴的粗鲁,他戴着一个逗乐的听力面孔。他蹲下红润。一个游艇帽从他的前额远远推开,他听到的叙述使他不断的表情从他的鼻角和眼睛和嘴巴的脸上突然出现。从他颤抖的身体中出现了一股喘息的笑声。他的眼睛闪烁着狡猾的享受,瞥了一眼他的同伴脸上的每一刻。有一两次他重新安排了他穿着斗篷时尚单肩挎的轻防水。他的马裤,他的白色橡胶鞋和他的jauntily斜挎防水表达了青春。但他的身材在腰部变得圆润,他的头发很少,灰白,他的脸,当表情的波浪经过它时,看起来很破旧。

如何通过文本的“章节”将文本分成两部分?

我使用了正则表达式Chapter 1 : .+ Chapter,但结果却删除了章节词。

1 个答案:

答案 0 :(得分:0)

如果您想使用拆分功能,这可能是您正在寻找的内容:

(?!^)(?=Chapter\s\d+\s:)

如果您只想捕捉章节,请尝试以下方法:

Chapter\s\d+\s:.*?(?=Chapter\s\d+\s:|$)

https://regex101.com/r/oE5rX6/1

可以缩短到这一点:

Chapter.*?(?=Chapter|$)

但是,如果你在文本中出现了Chapter这个词时出现了一些误报,那么在上一个表达式中更明确一些可能更好。

在所有情况下,它使用positive lookahead来匹配所需的内容。