[thelist] [php] '*' inside regexp (preg_match)

Ken Snyder ksnyder at coremr.com
Tue May 29 16:36:40 CDT 2007

Hi Paul,

If you want to allow a dash character, you have to escape it ("\-") or 
put the dash right before the bracket.  Right now you have 
space-dash-period (" -.") which will allow any character with an ascii 
code between space (32) and period (46) among which asterisk (42) 
happens to fall.  Try this:

preg_match("/^[a-zA-Z0-9 \-.(),]+$/", 'abc**def');

- Ken Snyder

Paul Bennett wrote:
> Hi people smarter than me,
> Discalimer: I'm a regexp retard (but I am getting better). In any case, can someone tell me why this returns true?:
> echo preg_match("/^[a-zA-Z0-9 -.(),]+$/", 'abc**def'); 
> Surely the regexp shouldn't allow the asterisk character to be in there??? Or does it have special meaning when used as a string inside preg_match?
> Confusedly yours,
> Paul 

More information about the thelist mailing list