note 104318 deleted from function.preg-replace by crell
| From: | crell@php.net | Date: | Fri, 01 Jul 2022 19:47:40 +0000 |
| Subject: | note 104318 deleted from function.preg-replace by crell | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-218856@lists.php.net to get a copy of this message | ||
Note Submitter: someuser at dot dot com
----
Replacement of line numbers, with replacement limit per line.
Solution that worked for me.
I have a file with tasks listed each starting from number, and only starting number should be
removed because forth going text has piles of numbers to be omitted.
56 Patient A of 46 years suffering ... ...
57 Newborn of 26 weeks was ...
58 Jane, having age 18 years recollects onsets of ...
...
587 Patient of 70 years ...
etc.
<?php
// Array obtained from file
$array = file($file, true);
// Decompile array with foreach loop
foreach($array as $value)
{
// Take away numbers 100-999
// Starting from biggest
//
// % Delimiter
// ^ Make match from beginning of line
// [0-9] Range of numbers
// {3} Multiplication of digit range (For tree digit numbers)
//
if(preg_match('%^[0-9]{3}%', $value))
{
// Re-assing to value its modified copy
$value = preg_replace('%^[0-9]{3}%', '-HERE WAS XXX NUMBER-', $value, 1);
}
// Take away numbers 10-99
elseif(preg_match('%^[0-9]{2}%', $value)) {
$value = preg_replace('%^[0-9]{2}%', '-HERE WAS XX NUMBER-', $value, 1);
}
// Take away numbers 0-9
elseif(preg_match('%^[0-9]%', $value)) {
$value = preg_replace('%^[0-9]%', '-HERE WAS X NUMBER-', $value, 1);
}
// Build array back
$arr[] = array($value);
}
}
?>