用于提取经文的模式,包括起始编号但不包括下一个编号

时间:2018-05-14 01:51:40

标签: regex

请参阅下面的示例文本。我创建了这个表达式\[\d+:\d+\][\s\S]*[^\[\d+:\d+\]]来选择提取一个如此的经文:

  

[14:5]从今以后,你们不可升到天上   法令颁布的永恒,以及地球的“债券”   在世界各地约会你。

整个文件的格式如下:

  

[14:1]这本关于公义和谴责的书   永恒的守望者按照圣大的命令行事   一个在那个愿景中。 [14:2]我在睡梦中看到了我现在要说的话   一个肉体的舌头和我口中的气息:伟大的一个   已经赐给人们与之交谈并用心去理解。   [14:3]正如他创造并赋予人类理解的力量   智慧的话语,他也创造了我,并给了我   谴责守护神,天堂之子的力量。 [14:4]我   写下了你的请愿书,并且在我看来,这似乎是你的   在整个日子里,请愿书不会被授予你   永恒,那个判断终于传给了你:是的   (你的请愿书)不会授予你。 [14:5]来自   从此以后,你不会永远地升入天堂,并且⌈in   在这个世界上,这个法令已经出来让你们为所有人而束缚   世界的日子。 [14:6]以前你会看到的   毁灭你心爱的儿子,你们就没有乐趣了   他们,但他们将落在你面前的剑。 [14:7]而你的   代表他们的请求不得给予,也不得自行:   即使你哭泣,祈祷并说出所有的话   写我写的。 [14:8]这个异象向我展示   因此:在远景中,云彩邀请我和一个薄雾召唤我,   星星和闪电的过程加快了我的速度,   视线中的风使我飞起来,向上抬起我,并且   让我进入天堂。 [14:9]我进去,直到我靠近墙   它由水晶构成,周围环绕着火舌:它   开始让我感到高兴。我走进了火舌,画了一下   靠近一座由水晶建造的大房子和墙壁   房子就像一个镶嵌水晶的地板(制成),它的   基础工作是水晶。 [14:11]它的天花板就像是路径   星星和闪电,它们之间是火热的基路伯,   他们的天堂是(清楚的)水。 [14:12]火焰燃烧   围墙,其门户开火。 [14:13]而我   进入那所房子,它像冰一样炎热和冰冷:那里   他们没有生活的乐趣:恐惧笼罩着我,颤抖着   抓住我。 [14:14]当我震颤和颤抖时,我摔倒了我的身体   面对。 [14:15]我看到了一个愿景,而且!有第二个房子,   比前者更大,整个门户站在我面前,   它是用火焰建造的。 [14:16]并且在各方面都如此   我不能在辉煌,辉煌和程度上表现出色   向你描述它的辉煌和它的范围。 [14:17]它的底线   它起火了,上面是闪电和星星的路径,   它的天花板也燃烧起火。

我一直在使用https://regex101.com/来测试

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上,但下一节开头的标记应该是一个积极的前瞻:

\[\d+:\d+\][\s\S]*?(?=\[\d+:\d+\]|$)

最后请注意(?=\[\d+:\d+\]|$)一词。这个断言以下内容是下一节经文的开头,但它不会消耗任何东西。此外,它会检查文件是否已到达,也表示最后一节的结尾。

请注意,您使用的内容[^\[\d+:\d+\]]无法按预期工作。这实际上是为了匹配 [:]或数字的任何单个字符。它只是一个字符类,或者是可能的字符集合,但不是模式。

按照下面的演示链接查看正在使用的正则表达式。

Demo