我想使用正则表达式来查找开头是给定字符串的所有段,结尾是另一个给定的字符串。
例如,我有字符串要查找:
Henry is a good student. And friends of Henry are also good students.
我希望找到以Henry
开头并以student
结尾的所有细分。这意味着,通过上面的例子,我们找到了两个部分:
亨利是个好学生。 亨利的朋友也是好学生。
不
亨利是个好学生。亨利的朋友也是好学生。
所有编程语言都可以。我只需要正则表达式。
编辑:我是正常表达的新手,我试了整整一个星期才发现但是没有用。我试过一些愚蠢的案子:/Henry.*student/
/Henry((?!student)*)student/
/Henry[^s]*student/
答案 0 :(得分:3)
使用延迟修饰符:
/Henry.*?student/
在此处查看:[{3}}
答案 1 :(得分:1)
尝试以下正则表达式:
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'
];
答案 2 :(得分:-2)
这应该这样做:
/Henry.*student/