使用正则表达式PHP拆分字符串
我的字符串是使用正则表达式PHP拆分字符串,php,regex,split,Php,Regex,Split,我的字符串是“30okok30okokok120” 我想把它分成数字和“OK”字符串,我的预期输出是 array(0=>30,1=>OK,2=>OK,......,n=>120) 目前我正在使用这个 preg_match_all('!\d+!', $str, $matches); 但它只返回数字,即30,30120 请帮助我获得高于预期的输出您想要的是 preg_match_all('(\d+|OK)', $string, $matches); \d+-一个或多个
“30okok30okokok120”
我想把它分成数字和“OK”字符串,我的预期输出是
array(0=>30,1=>OK,2=>OK,......,n=>120)
目前我正在使用这个
preg_match_all('!\d+!', $str, $matches);
但它只返回数字,即30,30120
请帮助我获得高于预期的输出您想要的是
preg_match_all('(\d+|OK)', $string, $matches);
-一个或多个数字\d+
-或|
-大写字母OK
后跟大写字母O
K
- 你想要的是
preg_match_all('(\d+|OK)', $string, $matches);
-一个或多个数字\d+
-或|
-大写字母OK
后跟大写字母O
K
(96个步骤)根据您的输入示例,从效率最低的模式到效率最高的模式:/\d+| OK/
(96个步骤)感谢您在上编辑@falsetru/\d+| OK/
OK@rtfmexplode
需要在结果中。使用OK
和explode
作为分隔符意味着OK
不会出现在结果中。感谢您在上编辑@falsetruOK
OK@rtfmexplode
需要在结果中。使用OK
和explode
作为分隔符意味着OK
不会出现在结果中。您是如何计算步骤的?…对不起,我在这方面做得很差regex@LeenaVashistharegex101为您做了这样的计算:(一开始每个人在regex都是“坏”的,不要沮丧)你是怎么计算步数的?…对不起,我很不擅长regex@LeenaVashistharegex101为您做了这样的计算:(一开始每个人在regex都是“坏”的,不要沮丧)OK
var_export(preg_split('/(OK)/',$in,null,PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE)); // or /([^\d]{2})/