in reply to Perl Regex

G'day Buddyhelp,

"Can some one please tell me how to get the values after the third piping (|) symbol without the plus signs"

First, anchor to the the start with a '^'.

You have three groups of 'not-pipe-characters' (i.e. [^|]*) followed by a single pipe character (i.e. \|). You can use non-capturing parentheses '(?:...)' specified '{3}' times.

The data you want is the next group of 'not-pipe-characters', so use capturing parentheses '(...)' here.

Finally, you can just split on '+' to get the values you want.

#!/usr/bin/env perl -l use strict; use warnings; my $data = '[-3|1|29x250+46+26|200+300+464|Get]... superfluous ...'; my $re = qr{^(?:[^|]*\|){3}([^|]*)}; if ($data =~ $re) { my @out = split /\+/ => $1; print "@out"; }

Output:

200 300 464

-- Ken