我正在尝试学习正则表达式并从这些可能的字符串中获取一系列单词/数字:
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');
答案 0 :(得分:4)
您需要检查先前字符。您可以使用此模式:
$names = preg_split('/(?=[A-Z])|(?<=\D)(?=\d)|(?<=\d)(?=\D)/', $name);