假设我有一个字符串1020 1050 9784 1560 0231 1546 8745
。
我如何删除(使用正则表达式)只有1作为第一个数字的数字组?
答案 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位数字。