Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: A Regex simple Question

by Sidhekin (Priest)
on Sep 06, 2007 at 15:54 UTC ( #637464=note: print w/ replies, xml ) Need Help??


in reply to A Regex simple Question

Negative lookahead is always tricky ... you're on the right track though.

In this specific case you could do this:

/^a(?!b)(?:(?!ab).)+b$/

... or even this:

/^(?!.*ab)a.+b$/

... unless I've read you wrong, and you want to allow the string "ab" and even "ab000b"/"a000ab" (since the "ab" is not strictly between the "a" and the "b"), in which case you want this:

/^a(?:(?!ab.).)*b$/

... or even this:

/^(?!.+ab.)a.*b$/

Always tricky, the negative lookahead ... if you can split it, like FunkyMonk suggests (or some variation thereof), it'll be far more readable.

print "Just another Perl ${\(trickster and hacker)},"
The Sidhekin proves Sidhe did it!


Comment on Re: A Regex simple Question
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (10)
As of 2015-07-08 06:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls