Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: Re: A complex recursive regex,help

by OM_Zen (Scribe)
on Feb 06, 2003 at 18:53 UTC ( #233227=note: print w/replies, xml ) Need Help??

in reply to Re: A complex recursive regex,help
in thread A complex recursive regex,help

Hi Tachyon ,

my $a = "x|xx|xx|xxxx|xx|xxx|xx|xx|x"; $a =~ s/(?<=\|)xx(?=(\||$))/x x/g; # this is actually doing the regex edge cases too Tachyon

Replies are listed 'Best First'.
Re: Re: Re: A complex recursive regex,help
by tachyon (Chancellor) on Feb 06, 2003 at 23:14 UTC

    Well *actually* it does not. Your test string does not *actually* contain the edge cases ( xx at the begining and end of the string):o) If your test string had contained the edge cases you would no doubt have noted the following failure case.....

    my $a = "xx|xx|xx|xxxx|xx|xxx|xx|xx|xx"; $a =~ s/(?<=\|)xx(?=(\||$))/x x/g; print $a; __DATA__ xx|x x|x x|xxxx|x x|xxx|x x|x x|x x

    Here is one way to fix your regex:

    $a =~ s/(?<=\|)|^xx(?=(\||$))/x x/g; # and here is a way using the zero width boundary assertion \b # that will match | ^ or $ but also matches any non aphlanumeric # so would potentially fail on '|xx,xx|' type strings # if they exist in practice as your real data is no doubt # not really xx..... $a =~ s/\bxx\b/x x/g;




Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://233227]
[choroba]: layer's observation?
[choroba]: laywer
[choroba]: lawyer
[choroba]: what's wrong with my figners?
[shmem]: they are too close to each other

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (7)
As of 2017-04-27 14:23 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (508 votes). Check out past polls.