Как разбить строку на массивы с помощью Perl? - PullRequest
0 голосов
/ 03 декабря 2018

Есть строка как:

$string= 123456-9876;

Нужно разбить ее на массив следующим образом:

$string = [12,34,56,98,76]

, пытаясь разбить ее как split ('-', $ string)не служит цели.Как я могу сделать это в Perl?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Извлечение пар цифр: (например, "1234-5678"[12,34,56,78])

$string = [ $string =~ /\d\d/g ];

Извлечение пар цифр, даже если они разделены не цифрами: (например, "1234-567-8"[12,34,56,78])

$string = [ $string =~ s/\D//rg =~ /../sg ];
0 голосов
/ 03 декабря 2018

Вместо разделения можно записать все 2-значные числа с помощью этого кода perl,

$str =  "123456-9876";
my @matches = $str =~ /\d{2}/g;

print "@matches\n";

Отпечатки,

12 34 56 98 76

Другое решение, , которое простогруппирует две цифры независимо от того, где в строке присутствуют нецифровые символы, без изменения исходной строки

$string =  "1dd23-dsd--456-9-876";
while($string =~ /(\d).*?(\d)/g) {
        print "$1$2 ";
}

Prints,

12 34 56 98 76
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...