Nitsan,
Thanks again. Sad to say, same result. The second option looped an error: Warning: preg_replace(): Compilation failed: nothing to repeat at offset 17 Thanks, Jesse Hazen ________________________________ From: nit...@binnun.co.il [mailto:nit...@binnun.co.il] On Behalf Of Nitsan Bin-Nun Sent: Thursday, March 26, 2009 1:58 PM To: Hazen, Jesse, arvato digital services llc Cc: php-general@lists.php.net Subject: Re: [PHP] Regex I have no idea about this control-Z thing, you might want to try it with UTF (just add the 'u' modificator): $str = preg_replace("#[^a-zA-Z0-9]+#uis", "", $str); Or try this: $str = preg_replace("#(\b[^a-zA-Z0-9]\b?)+#uis", "", $str); I may be wrong about the second one but it might work... On Thu, Mar 26, 2009 at 10:51 PM, <jesse.ha...@arvatousa.com> wrote: Nitsan, Thank you very much for the input. However, I just gave this a try and it still did not strip the control-Z. Therefore, it is still hitting my loop later and looping infinitely. I am sure I could mend that by working something into that loop, but there are several loops I would need to do this on. If I can stop the command at this method, then the entire script will run perfectly. Thanks, Jesse Hazen _________________ arvato digital services llc A Bertelsmann Company 29011 Commerce Center Dr. Valencia, CA 91355 http://arvatodigitalservices.com jesse.ha...@arvatousa.com Tel. +1 (661) 702-2727 Fax. +1 (661) 775-6478 ________________________________ From: nit...@binnun.co.il [mailto:nit...@binnun.co.il] On Behalf Of Nitsan Bin-Nun Sent: Thursday, March 26, 2009 1:44 PM To: Hazen, Jesse, arvato digital services llc Cc: php-general@lists.php.net Subject: Re: [PHP] Regex To filter out everything which is not A-Z, a-z and 0-9 try this regex: $str = preg_replace("#[^a-zA-Z0-9]+#is", "", $str); On Thu, Mar 26, 2009 at 10:23 PM, <jesse.ha...@arvatousa.com> wrote: Hi, Brand new to regex. So I have a cli which runs a regex on users input, to make sure that only 0-9 and A-Z are accepted. It should strip everything else. My problem is that when you press control-Z (on Windows; I have not yet tested this on linux, and I will, but I would like this to be compatible with both OS's) it loops infinitely saying invalid data (because of the next method call, which decides what to do based on your input). So, here is the input code. Is there a way I can ensure that control commands are stripped, here? public function getSelection() { $choice = $this->validateChoice(trim(strtoupper(fgets(STDIN)))); return $choice; } private function validateChoice($choice) { $choice = ereg_replace("/[^0-9A-Z]/","",$choice); return $choice; } I have tried a ton of different things to try and fix this. Tried /\c.|[^0-9A-Z]/, and many variations of \c and the [^0-9A-Z], to no avail. I also tried using both preg_replace() as well as ereg_replace(). I spent a lot of time on the regex section of the PHP manual, but I am not finding anything. Any advise on how to accomplish this? Thanks, Jesse Hazen