$variable =~ s/^(\d+)\b/$1/sg;
- Привязка
^
в начале делает бесполезным модификатор /g
. - Отсутствие подстановочного знака
.
в строке делает бесполезным модификатор /s
, поскольку он служит для того, чтобы .
также соответствовал символу новой строки. - Поскольку
\b
и ^
являются утверждениями нулевой ширины и единственными вещами вне группы захвата, эта замена не изменит переменную ввсе.
Единственное, что делает это регулярное выражение, захватывает цифры в $1
, если они найдены.
Последующее регулярное выражение
$variable =~ s/\D//sg;
Будетудалите все не-цифры, сделав переменную всего одним длинным числом.Если кто-то хочет отделить первую часть (соответствующую первому регулярному выражению), единственный способ сделать это - получить доступ к $1
из первого регулярного выражения.
Однако, первое регулярное выражение в этом случае будетлучше написать просто:
$variable =~ /^(\d+)\b/;
И если предполагается использовать захват:
my ($num) = $variable =~ /^(\d+)\b/;