preg_split和多个模式

时间:2014-07-19 20:06:04

标签: php regex

我使用正则表达式跟随一些PHP代码:

$result_from_pull = "T601092";

if(preg_match("/^[A-Za-z0-9]{2,6}[0-9]{1,3}$/", $result_from_pull)) {
    echo "We found a \"valid\" UFS key.";
}

我想要做的是将字符串分成两部分。第一部分将匹配模式的开头[A-Za-z0-9]{2,6},而第二部分将匹配模式的尾部[0-9]{1,3}

如何使用preg_split来完成此操作?它可以在一个preg_split上完成,还是应该完全使用两个或另一个函数?

2 个答案:

答案 0 :(得分:3)

preg_split是错误的功能。使用捕获组。

if(preg_match("/^([A-Za-z0-9]{2,6})([0-9]{1,3})$/", $result_from_pull, $matches)) {
    echo "We found a \"valid\" UFS key.";
    var_dump($matches);
    // you should see the first part in $matches[1], and the second in $matches[2]
}

答案 1 :(得分:2)

从索引1和2获取匹配的组

^([A-Za-z0-9]{2,6})([0-9]{1,3})$

DEMO

示例代码:

$re = "/^([A-Za-z0-9]{2,6})([0-9]{1,3})$/";
$str = "T601092";

preg_match($re, $str, $matches);