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',
),
)