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