0
Кто-нибудь знает, как заменить только первый матч вместо всех в perl. Если я использую без/g, он заменяет все.найти и заменить только первое совпадение в perl
$string =~ s/regex/replacement/;
Кто-нибудь знает, как заменить только первый матч вместо всех в perl. Если я использую без/g, он заменяет все.найти и заменить только первое совпадение в perl
$string =~ s/regex/replacement/;
use strict;
use warnings;
my $string = 'foo bar baz foo foo bar';
my $replace = 'bar';
$string =~ s/$replace/REPLACEMENT/;
print "$string\n";
Или использовать \Q
автоматически избежать символы не слова:
$string =~ s/\Q$replace/REPLACEMENT/;
Это заменяет только первый матч. Пожалуйста, покажите пример, который воспроизводит вашу проблему. – Mat
Ваше заявление неверно. Если вы ** используете ** с флагом 'g', он ** будет ** заменять все. В противном случае, только первое совпадение. – hwnd
's/search/replace /' заменяет только первое совпадение. Для получения дополнительной информации вы можете показать нам свой код, что вы пытаетесь. – serenesat