Разделение строки с помощью регулярного выражения в Perl - PullRequest
1 голос
/ 03 февраля 2011

Почему они не ведут себя одинаково?

perl -e '$x = "12aba34ba5"; $, = ", "; print split /[ab]/, $x;'
12, , , 34, , 5

perl -e '$x = "12aba34ba5"; $, = ", "; print split /(a|b)/, $x;'
12, a, , b, , a, 34, b, , a, 5

1 Ответ

2 голосов
/ 03 февраля 2011

Это задокументировано в perldoc split :

Если PATTERN содержит скобки, дополнительные элементы списка создаются из каждой соответствующей подстроки в разделителе.

Вы можете использовать (?:a|b), если не хотите делать обратные ссылки.

...