参见下面的示例文本。我创建了这个表达式\[\d+:\d+\][\s\S]*[^\[\d+:\d+\]],以选择提取如下所示的诗句:
14:5从今以后,你们必不再升到天上,直到永远,⌈在捆绑着地上的⌉,这命令已经发出,要捆绑你们在世上的一切日子。
整个文件的格式如下:
书上有义的话,和那异象中大圣者所吩咐的训斥永恒守护者的书。14:2我在睡梦中,看见了我现在要用肉舌和口气所说的话,这是大者赐给人的,好与人交谈,心里明白。14:3他怎样创造,赐给⌈⌈,使人明白智慧的话,也照样创造了我,赐给⌉⌉,斥责天上的守护者。14:4我写了你们的请愿书,在我的异象里,你们的祈求在永生的日子里,都不被⌈⌈赐给你们,审判也终于临到你们身上,是的(你们的请愿)⌉⌉不给你们。14:5从今以后,你们必不再升到天上,直到永远,⌈在捆绑着地上的⌉,这命令已经发出,要捆绑你们在世上的一切日子。14:6先前你必见你所亲爱的儿子被毁灭,你们必不喜悦他们,但他们必倒在你的刀下。14:7你为他们所祈求的,必不应允,也不可靠你自己,即使你哭泣,祷告,说出我所写的书信上所写的一切话。14:8这异象也是这样指示我的,看哪,在异象中,云彩邀请我,雾召我,星光飞舞,闪电加速,异象中的风,使我飞起来,使我升天。14:9我进去,近到用水晶建造的墙,周围是火舌。这墙就使我害怕。我进了火的舌头,近到一所用水晶建造的大房子。这殿的墙,好像用水晶做成的色镶地板,根基是水晶。14:11它的顶棚,如星光之路,中间有火热的基路伯,天如水。14:12有火围绕墙,门用火烧起来。我进了那殿,天热如火,冷如冰。里面没有生命的喜乐。恐惧笼罩着我,战战兢兢地抓住了我。14我战战兢兢的时候,倒在脸上。14:15我看见一个异象,瞧!有第二座房子,比前一座更大,整个大门在我面前敞开着,它是用火焰建造的。14:16在各方面,我不能向你们描述它的辉煌、富丽堂皇和程度。第十四章17地上有火,上面有闪电,有星辰之路,天花板也燃烧着火。
我一直在用https://regex101.com/测试
发布于 2018-05-14 01:56:22
你走在正确的轨道上,但下一节开头的标志应该是积极的展望:
\[\d+:\d+\][\s\S]*?(?=\[\d+:\d+\]|$)请仔细注意结尾处的术语(?=\[\d+:\d+\]|$)。这表明接下来的是下一节的开始,但它不消耗任何东西。此外,它还检查文档的结尾是否已经到达,也将指示最后一节的结尾。
请注意,您所使用的[^\[\d+:\d+\]]不会按预期工作。这实际上是为了匹配任何不是[、:、]或数字的单个字符。它只是一个字符类,或者一个可能的字符集合,但不是一个模式。
按照下面的演示链接查看regex的运行情况。
https://stackoverflow.com/questions/50322202
复制相似问题