我有这样的字符串。
$str = "-=!#?Bob-Green_Smith";
$str = "-_@!?1241482";
如何在第一次字母数字匹配时爆炸它们。 例如:
$str = "-=!#?Bob-Green_Smith";
becomes:
$val[0] = "-=!#?";
$val[1] = "Bob-Green_Smith";
很快就想到字符串不会包含初始字符串,
所以我需要检查第一个字符是否是字母数字。否则Bob-Green_Smith会在他不应该分开时被分开。
由于
答案 0 :(得分:1)
您可以使用preg_match
。
这将匹配“non word characters
”零或更多作为第一组
然后其余的作为第二个。
输出将有三个项目,第一个是完整字符串,因此我使用array_shift
删除它。
$str = "-=!#?Bob-Green_Smith";
Preg_match("/(\W*)(.*)/", $str, $val);
Array_shift($val); // remove first item
Var_dump($val);
答案 1 :(得分:-1)
您可以这样做:
$str = "-=!#?1Bob-Green_Smith";
preg_match('~[a-z0-9]~i', $str, $match, PREG_OFFSET_CAPTURE);
echo $bubString = substr($str, $match[0][1]);