PHP中字符串字符之间的筛选
我有一根这样的绳子:12PUM4PHP中字符串字符之间的筛选,php,string,split,Php,String,Split,我有一根这样的绳子:12PUM4 开始时有两到三个数,中间有三个字符,最后有一到两个数。 我想把它分成三部分: 数字直到字符 中间的人物 其余的在角色后面 有人能帮忙吗?你可以用 输出 Array ( [0] => 12PUM4 [1] => 12 [2] => PUM [3] => 4 ) Array ( [0] => 12 [1] => PUM [2] => 4 ) 使用此函数时,它将拆分文本并将匹配项放入$matches数组中 [0-9]+-
开始时有两到三个数,中间有三个字符,最后有一到两个数。 我想把它分成三部分:
Array ( [0] => 12PUM4 [1] => 12 [2] => PUM [3] => 4 )
Array ( [0] => 12 [1] => PUM [2] => 4 )
使用此函数时,它将拆分文本并将匹配项放入$matches
数组中
-至少匹配一个或多个数字[0-9]+
是至少一个或多个字符[a-zA-Z]+
就是一切(几乎)*
-用作子模式,该子模式放入()
数组中$matches
$str = '12PUM4';
$matches = array( 0 => substr($str,0, 2), 1 => substr($str, 2, 3) , 2 => substr($str, 5, strlen($str)>6 ? 2 : 1));
print_r($matches);
输出
Array ( [0] => 12PUM4 [1] => 12 [2] => PUM [3] => 4 )
Array ( [0] => 12 [1] => PUM [2] => 4 )
使用正则表达式
$string = '12PUM4';
$array = preg_split('#(?<=\D)(?=\d)|(?<=\d)(?=\D)#i', $string);
$string='12PUM4';
$array=preg_split('#)(?试试这个
$name = "12PUM4"
$pattern = "/^([0-9]{2,3})([A-Z]{3})([0-9]{1,2})$/";
preg_match($pattern, $name , $matches);
echo $matches[1]; // first numbers
echo $matches[2]; // middle chars
echo $matches[3]; // last numbers
这也是一种选择:
$input = '12PUM4';
$splitValues = sscanf('%d%[A-Z]%d', $input);
var_dump($splitValues);
$string='12PUM4';
$strCnt=strlen($string);
$tmpStr='';
$conArr=array();
对于($i=0;$i您需要将explode
与一些regex
一起使用,问题是我以前没有使用过regex,所以我认为有些可以帮助进行更深入的研究。链接,不需要使用explode。您不能在没有分隔符的情况下使用explode。也不需要使用regex,因为它们很复杂:P.看看我的答案,这是一种简单的方法;)它将显示2,3个数字、3个字符以及结尾处的1或2个数字。阅读问题,因为他问了例如“字符之前的数字”<代码>一开始有两到三个数字,中间有三个字符,在结尾有一到两个数字。< /代码>你读了那个问题吗?BTW THX为你的代码>不有用< /代码>投票:好的,你是对的,但他也写了。“直到字符的数字是中间的字符,其余的在字符后面。”无论如何,我会取消下一票。这没问题,我的解决方案是正确的,它的输出:Array([0]=>12PUM4[1]=>12[2]=>PUM[3]=>4)
,有什么问题吗?小字符是问题的简单部分,只需在模式末尾添加i
:)