Php 正在尝试区分大写字母和数字

Php 正在尝试区分大写字母和数字,php,regex,Php,Regex,我正在尝试学习正则表达式,并从以下可能的字符串中获取一个单词/数字数组: String: 'getUser100Profile' Return: array('get', 'user', '100', 'profile') String: 'put100' Return: array('put', '100') String: 'post' Return: array('post') 以下是我的代码片段,它不起作用: $name = 'get100'; $names = preg_spli

我正在尝试学习正则表达式,并从以下可能的字符串中获取一个单词/数字数组:

String: 'getUser100Profile'
Return: array('get', 'user', '100', 'profile')

String: 'put100'
Return: array('put', '100')

String: 'post'
Return: array('post')
以下是我的代码片段,它不起作用:

$name = 'get100';
$names = preg_split('/(?=[A-Z\d+])/', $name);

Return: array('get', '1', '0', '0');
Should return: array('get', '100');

您需要检查前导字符。您可以使用以下模式:

$names = preg_split('/(?=[A-Z])|(?<=\D)(?=\d)|(?<=\d)(?=\D)/', $name);

$names=preg_split('/(?=[A-Z])|)(?您需要检查前导字符。您可以使用此模式:

$names = preg_split('/(?=[A-Z])|(?<=\D)(?=\d)|(?<=\d)(?=\D)/', $name);

$names=preg_split('/(?=[A-Z]))(注意,对于
yesIAm
,这会给你:
yes
IAam
@Qtax:这个模式确实有很多问题,我会重写它。很好,现在“yesIAm100testTest”返回:“yes”,“I”,“Am”,“test”,“test”,“test”,“test”零宽度诗歌…+1:)请注意,对于
yesIAm
这将为您提供:
yes
IAam
@Qtax:此模式确实存在很多问题,我将重写它。完美的是,现在'yesIAm100testTest'返回:'yes','I','Am','100','test','test test'Zero-width诗歌…+1:)