Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-拆分字符串_Php_String_Split - Fatal编程技术网

PHP-拆分字符串

PHP-拆分字符串,php,string,split,Php,String,Split,另一个n00b问题 $ab = "A00000001" echo $a; // gives result "A" echo $b; // gives result "1" $ab = "B01250" echo $a; // gives result "B" echo $b; // gives result "1250" 在上述两个例子中,将“ab”转换为“a”和“b”的简单方法是什么 谢谢 您可以使用正则表达式执行此操作: $match = preg_match('@^(\w+)(\d

另一个n00b问题

$ab = "A00000001"
echo $a; // gives result "A"
echo $b; // gives result "1"

$ab = "B01250"
echo $a; // gives result "B"
echo $b; // gives result "1250"
在上述两个例子中,将“ab”转换为“a”和“b”的简单方法是什么


谢谢

您可以使用正则表达式执行此操作:

  $match = preg_match('@^(\w+)(\d+)@', $input);
  $letter = $match[1];
  $number = $match[2];

您可以使用正则表达式执行此操作:

  $match = preg_match('@^(\w+)(\d+)@', $input);
  $letter = $match[1];
  $number = $match[2];
有关substr的更多信息,请参见:


有关substr的更多信息可在此处找到:

如果这是您所说的“easiet single way”(简易单程)的意思,那么它会更短:

如果愿意,请调整正则表达式:

如果这就是您所说的“简易单程”的意思,那么它就更短了:

如果愿意,请调整正则表达式:

更新后,假设第二个“部分”始终是一个整数,我先是在玩regex,但我知道有一种更优雅的方式。谢谢还要感谢其他人。:)更新后假设第二个“部分”始终是一个整数,我第一次是在玩弄正则表达式,但我知道有一种更优雅的方式。谢谢还要感谢其他人。:)如果0不是偏移后的第一个数字呢?如果0不是偏移后的第一个数字呢?为了满足要求,可以修改正则表达式以排除前面的0:“@^(\w+0*(\d+)@”好的,但是如果他使用$number作为int,这无关紧要。要使其满足要求,您可以修改正则表达式以排除前面的0:“@^(\w+)0*(\d+@)”好的,但如果他使用$number作为int,这无关紧要。
list($a,$b) = preg_split('/0+/',$ab);