Принятый ответ кажется немного сложным, если вы просто пытаетесь сопоставить ближайшую букву «b» с «собакой», включая собаку, вам просто нужно подойти, прежде чем термин «жадный».Например:
# First example
my $string1 = 'abcbdog';
if ( $string1 =~ /.+(b.*dog)/ ) {
print $1;
# Returns 'bdog'
}
# Second example, different string, same regex.
my $string2 = 'abcbmoretextdog';
if ( $string2 =~ /.+(b.*dog)/ ) {
print $1;
# Returns 'bmoretextdog'
}
Или я что-то упустил?Если вы хотите изменить захваченную строку, чтобы она соответствовала тому, что вы хотите, просто сдвиньте скобки.