示例输入:
hjkhwe5boijdfg
我需要将其拆分为以下3个变量:
- hjkhwe5(任意长度,总是以某个数字结尾(可以是任何数字))
- b(总是一个字母,可以是任何字母)
- oijdfg(剩余的所有内容,数字或字母的任意组合)
来试一下:
$str = 'hjkhwe5boijdfg';
preg_match("/^([a-z]+\d+)([a-z])(.*)$/", $str, $m);
print_r($m);
输出:
Array
(
[0] => hjkhwe5boijdfg
[1] => hjkhwe5
[2] => b
[3] => oijdfg
)
解释:
^ : begining of line
( : 1rst group
[a-z]+ : 1 or more letters
\d+ : followed by 1 or more digit
) : end of group 1
( : 2nd group
[a-z] : 1 letter
) : end group 2
( : 3rd group
.* : any number of any char
) : end group 3
$
您可以使用 preg_match 如下:
$str = 'hjkhwe5boijdfg';
if(preg_match('/^(\D*\d+)(\w)(.*)$/',$str,$m)) {
// $m[1] has part 1, $m[2] has part 2 and $m[3] has part 3.
}