我有一些这种格式的测试用例/字符串:
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中爆炸的确切方法
有人可以帮忙吗?
感谢。
答案 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);
如果正则表达式正确,那应该会给你一系列结果。
答案 2 :(得分:0)
查看模式,您似乎需要使用正则表达式。如果这是他们的全部,你可以通过寻找一个大写字符来切断开头。代码可能如下所示:
$matches = array()
preg_match('/^[^A-Z]*?/', $string, $matches);
$matches = substr($matches[0], 0, count($matches[0])-1);
将第一小部分放入$ match中。在第二部分工作......