我有一些字符串,我需要能够根据特定模式替换。我所拥有的不起作用。
我想要“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>";
答案 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