在PHP中拆分字符串

时间:2010-03-17 17:51:05

标签: php

我有一些这种格式的测试用例/字符串:

o201_01_01a_Testing_to_see_If_this_testcases_passes:without_data
o201_01_01b_Testing_to_see_If_this_testcases_passes:data
rx01_01_03d_Testing_the_reconfiguration/Retest:

实际上,此测试用例名称由实际名称和描述组成。

所以,我想像这样分开它们:

o201_01_01a   Testing_to_see_If_this_testcases_passes:without_data
o201_01_01b   Testing_to_see_If_this_testcases_passes:data
rx01_01_03d   Testing_the_reconfiguration/Retest:

我无法弄清楚在php中爆炸的确切方法

有人可以帮忙吗?

感谢。

3 个答案:

答案 0 :(得分:6)

如果第一部分的长度始终相同,为什么不使用substr,例如

$string = "o201_01_01a_Testing_to_see_If_this_testcases_passes:without_data";
$first_part = substr($string, 0, 11); // o201_01_01a
$second_part = substr($string, 12); // Testing_to_see_If_this_testcases_passes:without_data

答案 1 :(得分:1)


$results = preg_split("/([a-z0-9]+_[0-9]+_[0-9]+[a-z])(.*)/", $input);

如果正则表达式正确,那应该会给你一系列结果。

http://www.php.net/manual/en/function.preg-split.php

答案 2 :(得分:0)

查看模式,您似乎需要使用正则表达式。如果这是他们的全部,你可以通过寻找一个大写字符来切断开头。代码可能如下所示:

$matches = array()
preg_match('/^[^A-Z]*?/', $string, $matches);
$matches = substr($matches[0], 0, count($matches[0])-1);

将第一小部分放入$ match中。在第二部分工作......