Regular expressions (regex) question for parsing
| From: | Rene Fournier | Date: | Mon, 22 Dec 2008 20:56:45 +0000 |
| Subject: | Regular expressions (regex) question for parsing | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-284976@lists.php.net to get a copy of this message | ||
Hi, I'm looking for some ideas on the best way to parse blocks of text that is formatted such as:
$sometext %\r\n -- good data
$otherstring %\r\n -- good data
$andyetmoretext %\r\n -- good data
$finaltext -- bad data (missing ending)
Each line should start with a $dollar sign, then some arbitrary text, ends with a percent sign, followed by carriage-return and line-feed. Sometimes though, the final line is not complete. In that case, I want to save those lines too.
....so that I end up with an array like:
$result = array ( "matches" =>
array ( 0 => "$sometext %\r\n",
1 => "$otherstring %\r\n",
2 => "$andyetmoretext %\r\n"
),
"non_matches" =>
array ( 3 => "$finaltext"
)
);
The key thing here is that the line numbers are preserved and the non-matched lines are saved...
Any ideas, what's the best way to go about this? Preg_matc, preg_split or something incorporating explode?
....Rene