Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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/4/regex/20.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/magento/5.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_Regex_Preg Replace Callback - Fatal编程技术网

Php 如何使用正则表达式按字符拆分字母数字字符串?

Php 如何使用正则表达式按字符拆分字母数字字符串?,php,regex,preg-replace-callback,Php,Regex,Preg Replace Callback,我有一系列字符串,形式为 10a99b5c 55 2a3b1 g 如何按字符分割字符串(总是在数字之间或字符串的开头/结尾显示为单个字符) 输出格式并不重要,我可以处理,我只是不知道什么样的正则表达式模式可以做到这一点(即使是一个提示也足够了) 我使用preg\u replace\u callback执行此操作,其中我使用为每个字符找到的数字进行一组计算。正则表达式: /[a-z]*[0-9]*/ [a-z]将匹配任何(小写)字符 零次或多次 [0-9]将匹配一个数字 零次或多次

我有一系列字符串,形式为

10a99b5c
55
2a3b1
g
如何按字符分割字符串(总是在数字之间或字符串的开头/结尾显示为单个字符)

输出格式并不重要,我可以处理,我只是不知道什么样的正则表达式模式可以做到这一点(即使是一个提示也足够了)


我使用
preg\u replace\u callback
执行此操作,其中我使用为每个字符找到的数字进行一组计算。

正则表达式:

/[a-z]*[0-9]*/

  • [a-z]将匹配任何(小写)字符
    • 零次或多次
  • [0-9]将匹配一个数字
    • 零次或多次

正则表达式:

/[a-z]*[0-9]*/

  • [a-z]将匹配任何(小写)字符
    • 零次或多次
  • [0-9]将匹配一个数字
    • 零次或多次
试试这个:

$input = ['10a99b5c','55','2a3b1','g'];
$regEx = '~([a-z]\d*)~';

foreach($input as $str){
  $res[] = preg_split($regEx,$str,-1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
}
echo '<pre>';
var_export($res);
试试这个:

$input = ['10a99b5c','55','2a3b1','g'];
$regEx = '~([a-z]\d*)~';

foreach($input as $str){
  $res[] = preg_split($regEx,$str,-1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
}
echo '<pre>';
var_export($res);

你能补充一下到目前为止你已经尝试过的吗?@Nicolas,正如我提到的,我正在寻找一个开始的提示。我不知道什么可以匹配现有和缺失的元素。提示是:另一个提示:@Luuk好极了,我得到了我需要的。如果你把它作为一个答案发布,一个被接受的答案可能也会帮助其他人。谢谢你能补充一下到目前为止你已经尝试过的吗?@Nicolas,正如我提到的,我正在寻找一个开始的提示。我不知道什么可以匹配现有和缺失的元素。提示是:另一个提示:@Luuk好极了,我得到了我需要的。如果你把它作为一个答案发布,一个被接受的答案可能也会帮助其他人。谢谢请注意,这个正则表达式也将匹配
aaaaaaa10
我不确定这是否是您要找的。这个谷歌机器人只对答案感兴趣,而不是
为什么
…,所以谁在乎呢。。。请注意,这个正则表达式也将匹配
aaaaaaa10
我不确定这是否是您要找的。这个谷歌机器人只对答案感兴趣,而不是
为什么
…,所以谁在乎呢。。。
array (
  0 => 
  array (
    0 => '10',
    1 => 'a99',
    2 => 'b5',
    3 => 'c',
  ),
  1 => 
  array (
    0 => '55',
  ),
  2 => 
  array (
    0 => '2',
    1 => 'a3',
    2 => 'b1',
  ),
  3 => 
  array (
    0 => 'g',
  ),
)