用preg_replace替换特定的字符组

时间:2013-12-02 03:56:07

标签: php regex preg-replace

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

我想要“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>";

1 个答案:

答案 0 :(得分: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