正则表达式仅在php中考虑数字字符后的句点

2022-03-22 00:00:00 regex php preg-replace

我有以下代码

<?php
$str="$str="115(JOHN DOE.)      900,000.00 SALARY.    45 AGE.   "; 
$str=preg_replace("/[a-zA-Z(),]/", "", $str);          
echo $str=preg_replace('!s+!', ',', $str);
?>

此输出

115,.,900000.00.,45.,

但这不完全是我需要的,我需要考虑在900,000.00内的句号,忽略John DOE的句号。、工资、年龄。

我如何才能获得

115,900000.00,45

即,我只需要正则表达式来考虑数字字符后面的句点


解决方案

在不尝试改进代码的情况下.应该可以做到:

$str="115(JOHN DOE.)      900,000.00(SALARY.)    45(AGE.)";
$str=preg_replace("/[a-zA-Z]+.+/", "", $str);
$str=preg_replace("/[a-zA-Z(),]/", "", $str);
echo $str=preg_replace('!s+!', ',', $str);

相关文章