For Programmers: Free Programming Magazines  


Home > Archive > PHP Programming > April 2007 > Re: RegEx - Chk for special chars









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Re: RegEx - Chk for special chars
gosha bine

2007-04-30, 6:59 pm

On 30.04.2007 01:37 M Kinnear wrote:
> I want to check a string only contains a-z 0-9 ( ) . and #
>
> I've used
>
> ereg("^[a-zA-z0-9().#]*)$"),$instr)


This line has a syntax error. I'd suggest

preg_match('/^[\w().#]*$/D', $instr)

>
> which parses a string correctly until I try and parse a !,",£,$ ... or any
> of the other special/reserved characters.
>
> First q: what am I doing wrong
> Second q: is there clarification on whether characters need to be escaped
> when part of a regex statement? i.e., should it be [$] or [\$] - some
> websites/posts state they should be escaped, others say they shouldn't


Inside a character class ([...]) only slash \ caret ^ and dash - have
special meaning and should be escaped. All other chars are taken
literally. When using double quotes, you also have to escape dollar sign
when it comes before a letter.


>
>
> Thanks
>
> Matt
>
>



--
gosha bine

extended php parser ~ http://code.google.com/p/pihipi
blok ~ http://www.tagarga.com/blok
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2010 codecomments.com