只替换第一个字符为1的数字?

时间:2014-03-06 13:47:14

标签: php regex

假设我有一个字符串1020 1050 9784 1560 0231 1546 8745

我如何删除(使用正则表达式)只有1作为第一个数字的数字组?

3 个答案:

答案 0 :(得分:7)

使用单词边界(\b):

\b1\d*\b

\b匹配单词字符(\w)和非单词字符(\W),或字符与字符串的开头/结尾之间的匹配。

答案 1 :(得分:1)

以下是一个如何找到以1

开头的所有单词的示例
$s="1020 1050 9784 1560 0231 1546 8745";
preg_match_all("#\b1.*?\b#",$s,$res);
var_dump($res);

结果是:

array(1) {
   [0]=>
    array(4) {
        [0]=>
         string(4) "1020"
        [1]=>
         string(4) "1050"
        [2]=>
         string(4) "1560"
        [3]=>
         string(4) "1546"
   }
 }

答案 2 :(得分:0)

试试这个:

$str = "1020 1050 9784 1560 0231 1546 8745";

echo $str."<br/>";

$str = preg_replace("^(\b0[0-9]{3}|[2-9]{1}[0-9]{3}\b)^","",$str);

echo $str;

这将删除任何不以1开头的4位数字。