Regex 如何查找具有开始和结束字符串的段?

Regex 如何查找具有开始和结束字符串的段?,regex,Regex,我想用正则表达式来找到所有的段,开始是一个给定的字符串,结束是另一个给定的字符串 例如,我要查找字符串: Henry is a good student. And friends of Henry are also good students. 我想找到所有以Henry开头,以student结尾的片段。这意味着,在上述示例中,我们发现了两个分段: 亨利是个好学生。亨利的朋友也是好学生 不是: 亨利是个好学生。亨利的朋友也是好学生 所有的编程语言都适合我。我只需要正则表达式 编辑:我对正则表达式

我想用正则表达式来找到所有的段,开始是一个给定的字符串,结束是另一个给定的字符串

例如,我要查找字符串:

Henry is a good student. And friends of Henry are also good students.
我想找到所有以
Henry
开头,以
student
结尾的片段。这意味着,在上述示例中,我们发现了两个分段:

亨利是个好学生。亨利的朋友也是好学生

不是:

亨利是个好学生。亨利的朋友也是好学生

所有的编程语言都适合我。我只需要正则表达式

编辑:我对正则表达式非常陌生,我花了整整一周的时间试图找到它,但没有成功。我试过的一些愚蠢的案例:

/Henry.*student/

/Henry((?!student)*)student/

/Henry[^s]*student/
使用惰性修饰符:

/Henry.*?student/
在这里看到它的作用:

这应该做到:

/Henry.*student/
尝试以下正则表达式:

m/Henry.*?student/g
这里?使*量词不贪婪

Perl代码:

#!/usr/bin/env perl

use warnings;
use strict;
use Data::Dumper;

my $text="Henry is a good student. And friends of Henry are also good students.";
my @matches = $text=~ m/(Henry.*?student)/g;
print Dumper \@matches;
输出:

$VAR1 = [
          'Henry is a good student',
          'Henry are also good student'
        ];

你只需要把你的尝试。对不起,我是新的正则表达式,所以我不知道怎么做。。。如果我让你失望了,我很抱歉。我不确定。但有时它能起作用,有时它能匹配整个字符串,比如:亨利是个好学生。亨利的朋友也是很好的学生。请给我解释一下,问题面具(?)在你的正则表达式中是什么意思?@funny337-这是一个懒惰的修饰语。它告诉正则表达式引擎只匹配尽可能少的字符。@nhahtdh-OP从未说过不匹配句子。这里有一个语言兼容性参考:tl;dr:除了oracledb之外,懒惰量词可以用于任何东西。