Regex 用于捕获段落TMatchCollection的正则表达式(使用Delphi XE 6)

Regex 用于捕获段落TMatchCollection的正则表达式(使用Delphi XE 6),regex,delphi,delphi-xe6,Regex,Delphi,Delphi Xe6,我试图捕获一组段落,这些段落看起来像下面所示的段落。 我想在一个单独的集合中捕捉每个段落。我已经想出了如何独立地捕捉每一行,但不是完整的段落。 我用的是PCRE引擎。 任何帮助都将不胜感激。我认为在每一行的末尾也可能有新的行/换行符…如果这有区别的话。有些段落可能长达5行,或短至2行 预测有效期04/0000Z 33.8N 77.3W 最大风力85千吨…阵风105千吨。 64kt。。。20NE 20SE 0SW 20NW。 五万吨。。。40NE 50SE 20SW 40NW。 34千吨…东北偏北

我试图捕获一组段落,这些段落看起来像下面所示的段落。 我想在一个单独的集合中捕捉每个段落。我已经想出了如何独立地捕捉每一行,但不是完整的段落。 我用的是PCRE引擎。 任何帮助都将不胜感激。我认为在每一行的末尾也可能有新的行/换行符…如果这有区别的话。有些段落可能长达5行,或短至2行

预测有效期04/0000Z 33.8N 77.3W
最大风力85千吨…阵风105千吨。
64kt。。。20NE 20SE 0SW 20NW。
五万吨。。。40NE 50SE 20SW 40NW。
34千吨…东北偏北110SE 70SW 60NW

预测有效期4/1200Z 36.3N 74.4W
最大风力90节…阵风110节。
64kt。。。30NE 30SE 0SW 20NW。
五万吨。。。50NE 50SE 30SW 40NW。
34千吨…东北方向100NE,东南方向80SW,西北方向70NW

预测有效期05/0000Z 39.4N 70.2W
最大风力60节…阵风75节。
五万吨。。。60NE 80SE 60SW 60NW。

34千吨…100NE 130SE 110SW 90NW

它不是像
(\n)*
那么简单吗?也就是说,查找一个单行匹配,然后是任意数量的附加匹配,以换行符分隔。当然,您需要指定允许多行匹配的选项。基于对数据的非常模糊的描述,很难回答这个问题。“我认为在每一行的末尾也可能有新的行/换行符”-嗯,是有还是没有?我们无法从这里判断,你当然可以确定这些信息。“段落”之间是否真的有一个分隔符(空行)?每个“段落”都是以“预测”开头的吗?嗨,罗布,根据你的评论,我查看了*以确定我是否能使它起作用,我想我可能有它。它似乎捕捉到了这段文字,但我会做更多的测试。以下是我的研究结果:(你看到了潜在的潜在陷阱吗?)预测(预测(124;展望)中)预测(你看到了潜在的潜在陷阱吗?)预测(你看到了潜在的潜在陷阱吗?)预测(你看到了潜在的潜在的潜在陷阱吗?)预测(预测)展望)中)预测(预测)展望)中)中)s+有效的+s+有效的+s+2{{2}{2}\2}2}2}\s+\d{{2}2}2}\2}2}2}1(2}1}1}1(2}1}1(2}1}1}1(2}1}1}1}1}1(2}1}1}1}1}1(2}1}1(0 0}1}(0 0 0 0 0 0 0 0 0}1}1)的以下以下以下{2})\s+(\d+)(\W{2})\s+(\d+)(\W{2})\s+(\d+)(\W{2})。\r\N)*试图通过正则表达式故意受虐来实现这一点,还是你必须这样做?您是否有一个文本文件或类似文件,其中包含所有预测?我这样问是因为在Delphi中提取个人预测的方法应该比使用正则表达式简单得多。Bryan,请看你的问题。格式正确吗?如果没有,那么请你的问题来改进它。你可能会对它感兴趣。目前,它看起来有三行,每行都以“预测”开头。我假设这三行一起构成一个段落。你评论中的正则表达式似乎表明问题中显示的实际上是三段,每段由三到五行组成。