Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: [Try-out] Regexp do's and don'ts

by Dietz (Curate)
on Aug 15, 2004 at 09:56 UTC ( #383071=note: print w/replies, xml ) Need Help??


in reply to Regexp do's and don'ts

5. Do know what your regex really means.<br> Do know about ^, $, variable interpolation, the matching rules as de +scribed by the Camel Book, modifiers, and the meaning of \n (newline) + in combination with ., ^ and $
Do know about precedence since disregarding it is one of the highest crime in regex country:

I've made a sample common mistake not paying attention to precedence and I use this as a chance to pillory myself giving a perfect example of what not to do.

In node Re: Short or Long Hand I was using an alternation being based on anchors:

/^0|6$/
This simply says match 0 at the beginning or match 6 at the end while my intention was to match 0 or 6 ranging from beginning to the end of the string:
/^(?:0|6)$/

As an addition to your tutorial I'd like to see the basic requirement for regexes:
You can't write an efficient regex as long as you don't know what your expected data will be:
Always think of the expected data while changing or simplifying regexes.

I personally like the term 'regexpected'
Keep it in mind and it will save your life ;-)

Please feel free to downvote node Re: Short or Long Hand
/me castigating myself for not paying attention to precedence

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://383071]
help
Chatterbox?
[Corion]: Maybe you could reduce ITIL to a computer network, a man and a dog. The network runs the computations. The man is there to feed the dog. The dog is there to prevent the man from accessing the computers.
[marto]: from experience of this side of the fence, it's all about proving to people that you are ITIL compliant, then the client ignores logical processes anyway :P
[marto]: when you work on the outside, for a client, you can make them aware of the stupids, but they don' t always listen :/
[Corion]: Yeah, you can lead them to water, but it's illegal to drown them...
[Discipulus]: Here my solution marto: create a win fake machine insied AD. do a micro fake partition foreach remote partition you wont to monit. put a web server that acept from data from remote systems and full fake partition as needed. fake partition are Mb. ;=)
[marto]: Discipulus yeah, the nuclear industry love fake machines sitting around on a controlled domain :P
[marto]: changing a typo on a website is often a great deal of paper work :P

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (12)
As of 2017-01-24 10:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you watch meteor showers?




    Results (203 votes). Check out past polls.