If you can point me on the character which control-z creates it would make it easier, I have no idea of it ;) I'm sorry mate. On Thu, Mar 26, 2009 at 11:06 PM, <Jesse.Hazen@xxxxxxxxxxxxx> wrote: > 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:* nitsan@xxxxxxxxxxxx [mailto:nitsan@xxxxxxxxxxxx] *On Behalf Of *Nitsan > Bin-Nun > *Sent:* Thursday, March 26, 2009 1:58 PM > > *To:* Hazen, Jesse, arvato digital services llc > *Cc:* php-general@xxxxxxxxxxxxx > *Subject:* Re: 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.Hazen@xxxxxxxxxxxxx> 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.hazen@xxxxxxxxxxxxx > > Tel. +1 (661) 702-2727 > > Fax. +1 (661) 775-6478 > ------------------------------ > > *From:* nitsan@xxxxxxxxxxxx [mailto:nitsan@xxxxxxxxxxxx] *On Behalf Of *Nitsan > Bin-Nun > *Sent:* Thursday, March 26, 2009 1:44 PM > *To:* Hazen, Jesse, arvato digital services llc > *Cc:* php-general@xxxxxxxxxxxxx > *Subject:* Re: 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.Hazen@xxxxxxxxxxxxx> 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 > > > > >