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之外,懒惰量词可以用于任何东西。