two part question...
PART 1...
part one is really simple, but for some reason it's just not happening for me... i need to find and replace all numbers which have a space between them...
ex: 9 0 8would become 908 & 6 9 would become 69
what're the proper preg_replace attributes i'd need to achieve this?
PART 2...
this one is a little tricky... i also have some numbers like 1,000 that are showing up as 1 ,000 or 1, 000... so i need to get rid of the unwanted space, but there's a catch... if the line which contains the number we're potentially replacing also contains the string respective, then i need leave the space intact. the reason being, some number/comma combinations represent two separate values as opposed to a thousand delimiter (this case can be identified by the line containing somewhere the string respective).
thanks so much
php regex, strip spaces between numbers (with a catch)...
Moderator: General Moderators
- ridgerunner
- Forum Contributor
- Posts: 214
- Joined: Sun Jul 05, 2009 10:39 pm
- Location: SLC, UT
Re: php regex, strip spaces between numbers (with a catch)..
This should do the trick:
Code: Select all
<?php
function fixnums($text) {
// First remove any one sapce between two digits.
$text = preg_replace('/(\d) (?=\d)/', '$1', $text);
// Next process lines which do NOT have the word "respective"
$re = '/^((?!\brespective\b).)+$/mi';
$text = preg_replace_callback($re, '_fixnums_callback', $text);
return $text;
}
function _fixnums_callback($matches) {
// Remove space from comma separated digits.
$re = '/(\d)(?: ,|, )(?=\d{3}\b)/';
return preg_replace($re, '$1,', $matches[0]);
}
?>