Regex 获取最短的匹配,而不是最长的匹配

Regex 获取最短的匹配,而不是最长的匹配,regex,Regex,我试图根据以下逻辑提取多组句子: 第一句话必须包含一个带备选词的单词 继续收集下列句子,直到你找到一个有特定单词的句子,并有其他选择 输入(组成示例): 在脊柱的T2上有一个发现。这一发现很可能是骨折。此外,患者似乎很累。L2患者有一个环状椎间盘突出并伴有中央椎间盘突出。在L5,患者似乎有另一处骨折。在颈椎,患者有任何退行性变。病人也可能发烧。L3,也发现终板水肿。在L5中,患者可能有瘀伤 正则表达式: 预期产出: 在脊柱的T2上有一个发现。这一发现很可能是骨折。此外,患者似乎很累 在颈

我试图根据以下逻辑提取多组句子:

  • 第一句话必须包含一个带备选词的单词
  • 继续收集下列句子,直到你找到一个有特定单词的句子,并有其他选择
输入(组成示例):

在脊柱的T2上有一个发现。这一发现很可能是骨折。此外,患者似乎很累。L2患者有一个环状椎间盘突出并伴有中央椎间盘突出。在L5,患者似乎有另一处骨折。在颈椎,患者有任何退行性变。病人也可能发烧。L3,也发现终板水肿。在L5中,患者可能有瘀伤

正则表达式:

预期产出:

  • 在脊柱的T2上有一个发现。这一发现很可能是骨折。此外,患者似乎很累

  • 在颈椎,患者有任何退行性变。病人也可能发烧

  • 实际产量:

    在脊柱的T2上有一个发现。这一发现很可能是骨折。此外,患者似乎很累。L2患者有一个环状椎间盘突出并伴有中央椎间盘突出。在L5,患者似乎有另一处骨折。在颈椎,患者有任何退行性变。病人也可能发烧。L3,终板水肿也被发现。

    你差点就到了:)

    只需在中间(贪婪)中使用<代码> > *> <代码>(这是懒惰的),您将得到期望的输出。

    贪婪尽可能地匹配。 懒惰的人尽可能少地匹配


    演示:

    Hi,也许使用非贪婪量词
    我正在尝试。我把它放在前瞻组的末尾,但是没有任何改变使
    *
    变懒,让它匹配所有的行,所以它的行是span
    [^.]*(cervi(?:c | x)| c[1-7]| T[1-6])。(?=[^.]*L[1-5][^.]*.
    [^.*(cervi(?:c(?:c(?:al?);x)| c[1-7]| T[1-6].[^.[^.]。因此,如果没有
    *?
    ,正则表达式只会找到最长的….组合。。。。任何字符+。+带L[1-5]的句子