> -----Original Message----- > From: Ashley Sheridan [mailto:ash@xxxxxxxxxxxxxxxxxxxx] > Sent: Tuesday, November 04, 2008 1:40 PM > To: Adam Williams > Cc: PHP General list > Subject: Re: removing text from a string > > On Tue, 2008-11-04 at 08:04 -0600, Adam Williams wrote: > > I have a file that looks like: > > > > 1. Some Text here > > 2. Another Line of Text > > 3. Yet another line of text > > 340. All the way to number 340 > > > > And I want to remove the Number, period, and blank space at the > begining > > of each line. How can I accomplish this? > > > > Opening the file to modify it is easy, I'm just lost at how to remove > > the text.: > > > > <?php > > $filename = "results.txt"; > > > > $fp = fopen($filename, "r") or die ("Couldn't open $filename"); > > if ($fp) > > { > > while (!feof($fp)) > > { > > $thedata = fgets($fp); > > //Do something to remove the "1. " > > //print the modified line and \n > > } > > fclose($fp); > > } > > ?> > > > I'd go with a regular expression any day for something like this. > Something like: > > "/$[0-9]{1,3}\.\ .*^/g" > > should do what you need. Note the space before the last period. That would only work for files with 1-999 lines, and will wind up matching the entire line (since you used $ and ^ and a greedy .* inbetween... also... $ is "end-of-line" and ^ is "beginning-of-line" :)) rather than just the "line number" part. I would stick with my originally-posted regex ("/^\d+\.\s/"), but I would modify yours like this if I were to use it instead: "/^[0-9]+\.\ (.*)$/" (What was the "g" modifier for, anyway?) Then, you could grab the capture group made with (.*) and use it as the "clean" data. (It would be group 1 in the match results and "$1" in a preg_replace() call, I believe. Group 0 should be the entire match.) Todd Boyd Web Programmer -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php