Regex 正则表达式匹配文本块

Regex 正则表达式匹配文本块,regex,Regex,我有一些文本格式是这样的 Lorem ipsum dolor sit amet, consetetur sadipscing elitr sed diamnonumy eirmod tempor invidunt ut labore et dolo re magna aliquyam erat, sed diam voluptua. At vero eose t accusam et justo duo dolores et ea rebum. Stet clita kasd gubergre

我有一些文本格式是这样的

Lorem ipsum dolor sit amet, consetetur sadipscing elitr
sed diamnonumy eirmod tempor invidunt ut labore et dolo
re magna aliquyam erat, sed diam voluptua. At vero eose
t accusam et justo duo dolores et ea rebum. Stet clita 
kasd gubergren, no sea takimata sanctus est Lorem ipsum
dolor sit amet.
Ipsum dolor sit amet, consetetur sadipscing elitr, sed 
diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua. Atero eos et a
ccusam et justo duo dolores et ea rebum.
我需要匹配并包括部分行(不同长度的第一行)

在上述文本中,模式将匹配:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr
sed diamnonumy eirmod tempor invidunt ut labore et dolo
re magna aliquyam erat, sed diam voluptua. At vero eose
t accusam et justo duo dolores et ea rebum. Stet clita 
kasd gubergren, no sea takimata sanctus est Lorem ipsum
dolor sit amet.
如果我知道每行的长度,我可以使用
(.{0,30})+.{0.29}
,但不幸的是我不知道

我使用的是GLib正则表达式,基本上是perl正则表达式

半无关:这是一个更大的正则表达式的一部分,它将用于desc子组


/\s?>\s?(?。+)$\n(?:(?:^.*.\n)*^\s*$\n)?^(?[A-Z][A-zA-Z'].*(?:[A-Z]{1,3}.[A-Z][A-Z']{3,})*-(?:[,([-].$\n(?:^.+$\n)+/m
<

/(?:^.{55}\n)+^.{0,54}\.\n/
应该可以满足您的需要。另一种解决方案可能是将所有内容都添加到以
结尾的第一行\n

/.*?\.[\n\z]/m

否则,您需要更清楚地定义“完整”行和“部分”行的构成;据我所知,并没有“捕获组中的数据长度”这样的概念在PCRE中,您将无法处理任意的行长度。

请提供您在预期输出中尝试的内容。如果您要检查长度,为什么需要正则表达式?这是更长模式的一部分,我希望保留一个正则表达式。我不能依赖于以“.”结尾的最后一行。我不知道e的长度每条线。看来我得把正则表达式分解了。