nataraj: (Бритый небритый)
[personal profile] nataraj
Хочу очень простой вещи: разделить строку на части, при этом разделители многосимвольные, похожи, но отличаются на пару символов друг от друга... Хочется нечто вроде

my $s="111 =aa= 222 =bb= 333 =cc= 444";
print join "\n", split(/=(aa|bb|cc)=/, $s);

Но: split когда в шаблоне встречаются скобки то что попадает в зону группировки добавляет в результирующий список, а нам это не надо. если скобки убрать то тогда знак равенства становиться частью первой и последний альтернативы. Это нам тоже не надо.

Теоретически можно написать split /=aa=|=bb=|=cc=/, $s
и тогда все будет. Но это только в примере выглядит коротко... В жизни так писать не хотелось бы.

Научить сплит не включать зоны группировки в результат кажется невозможно... Можно ли как-то без круглых скобок намекнуть регекспу что знак равенства уже не часть альтернативы, а следующий за альтернативой символ?
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 6th, 2025 01:32 am
Powered by Dreamwidth Studios