Чтобы удалить все, вплоть до первого +, включая, вы можете сделать:
$number ~= s/.*\+//;
Если вы хотите сохранить +, вы можете поместить это в замену:
$number ~= s/.*\+/+/;
Вышеприведенное говорит: сопоставьте «что-нибудь» (.*
), за которым следует +
(+
- это специальный символ в регулярных выражениях, поэтому для него требуется экранирование обратной косой черты) и его замена ничем ( или в приведенном выше примере замените его одним +
).
Обратите внимание, что вышеприведенное вычеркнет все в строке до LAST +
, что может быть не тем, что вы хотите. Если вы хотите сохранить в строке все до FIRST +
, вы можете сделать:
$number =~ s/[^+]*\+//;
или
$number =~ s/[^+]*\+/+/; # Keep the +
Отличие от первого регулярного выражения состоит в [^+]*
вместо .*
, что означает «соответствует любому символу, кроме +
».
Для получения дополнительной информации о регулярных выражениях Perl справочная страница perldoc perlre довольно хороша, как и книга О'Рейли Мастеринг регулярных выражений book.