Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Re: A complex recursive regex,help

by OM_Zen (Scribe)
on Feb 06, 2003 at 01:07 UTC ( [id://233015]=note: print w/replies, xml ) Need Help??


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

Hi BrowserUk,

My request was not clear, I think , Actually I need all the |xx| changed to |x x| and hence now I have used the tachyon answer of backward and forward assertion which I did not know much on before and I have seen your node once that uses < > code and then assigning $1 to a local variable inside the regex itself which was a lovely piece of regex , but I sure have to read and practice it thoroguhly BrowserUk, about backward, forward asssertions,and few other concepts of regex,THANKS A BUNCH



Replies are listed 'Best First'.
Re: Re: Re: A complex recursive regex,help
by BrowserUk (Patriarch) on Feb 06, 2003 at 01:44 UTC

    Sorry. I misunderstood your requirement (though it could have been stated a little more clearly:^).

    This one (I think does what you want, edge case as well and is relatively simple.

    $s = "xx|xx|xxxx|xx|xxx|xx|xx|xx"; $s =~ s[(?<!x)(x)(x)(?!x)][$1 $2]g; print $s; x x|x x|xxxx|x x|xxx|x x|x x|x x

    Update Thinking about it, stick with tachyon's as this will fall over if your data contains any occurance of xx without |'s or x's on either side.


    Examine what is said, not who speaks.

    The 7th Rule of perl club is -- pearl clubs are easily damaged. Use a diamond club instead.

      Hi ,

      The cases where the xx appears last are clearly taken care of by your regex BrowserUk,the part I am not understanding is that you are saying that it will fall over if yout date containes any occurances of xx without |'s or x's on either side, please give an instance of this BrowserUk, in terms of data to facilitate the understanding as yoru regex is doing pretty good in all data strings

        An example where mine falls over, but I think tachyon's wouldn't.

        $t = "xyxxy|xx|xy|xx|yy|yxxy xx x" $t =~ s[(?<!x)(x)(x)(?!x)][$1 $2]g; print $t xyx xy|x x|xy|x x|yy|yx xy x x x

        Examine what is said, not who speaks.

        The 7th Rule of perl club is -- pearl clubs are easily damaged. Use a diamond club instead.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://233015]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2024-03-28 17:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found