Re: Spaces Not Detected from Regular Expression preg_match

From: Date: Wed, 25 Feb 2009 20:38:26 +0000
Subject: Re: Spaces Not Detected from Regular Expression preg_match
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-288792@lists.php.net to get a copy of this message
Shawn McKenzie wrote: > Alice Wei wrote: >> Hi, >> >> I have a code as in the following: >> >> <?php >> >> $file = "test.txt"; >> $fp = fopen($file, "r"); >> >> while(!feof($fp)) { >> $data = fgets($fp, 1024); >> >> if ((preg_match("/0/",$data)) || >> (preg_match("/\"\s\"/",$data)) || >> (preg_match("/\"\s\"/",$data))) { >> //Don't do a thing >> } >> >> } >> fclose($fp); >> >> ?> >> >> >> This is the input file: >> >> 1 >> 23kd >> 3dkd2 >> " " >> 4 >> 5 >> 6 >> >> For the output, I get nothing running it from the command prompt, but I would like to have >> " " in the output, >> could anyone please give me some guides on what I have done wrong in my regular expression? >> >> Thanks for your help. >> >> Alice >> >> >> >> >> >> >> _________________________________________________________________ >> Search from any Web page with powerful protection. Get the FREE Windows Live Toolbar Today! >> http://get.live.com/toolbar/overview > > Ummm... #1 you haven't "output" anything in your code. Your code says, > if " " is found in $data, then "Don't do a thing". > > > So if your wanting to see if there is a match in the line and return the match (which in this example seems pointless because you know that you are matching ""), then something like this: if (preg_match("/0/",$data, $matches) || preg_match("/\"\s\"/",$data, $matches)) { print_r($matches); } BTW, the second and third conditions in your if appeared to be the same, also \s matches whitespace, spaces, tabs, returns, etc... -- Thanks! -Shawn http://www.spidean.com

« previous php.general (#288792) next »