用preg_replace替换特定的字符组

问题描述 投票:1回答:1

我有一些字符串,我需要能够根据特定模式替换。我所拥有的不起作用。

我想要“OAK”,3位数字和一封信,并忽略其余部分

$str = "OAK248B1LB";
$regex = "/[^OAK\d{3}[a-z]{1}]/i";
echo "STR: $str<br>";

$str = preg_replace($regex,"",$str);
echo "STR IS NOW: $str <br>";
php regex preg-replace
1个回答
0
投票

您可以使用:

$str = "OAK248B1LB";
$regex = '/^(OAK\d{3}[A-Za-z]).*$/';
$str = preg_replace($regex, "$1", $str);
//=> OAK248B

即将要保留在$1中的字符串分组,并在替换部分中使用$1丢弃其余部分。

你也可以使用preg_match

$str = "OAK248B1LB";
if (preg_match('/^OAK\d{3}[A-Za-z]/', $str, $m) )
   echo $m[0];  //=> OAK248B
© www.soinside.com 2019 - 2024. All rights reserved.