每隔两次使用正则表达式分隔一个字符串
Split a string every second occurence of a delimiter with regex
我需要你的帮助,因为我不太擅长正则表达式!
我想在每两次出现“/”时拆分以下字符串
Alien 3 / Argentina / Alien 3 / Brazil / Alien 3 / Croatia / Vetřelec 3 / Czech Republic / Vetřelec 3 / Czechoslovakia / Alien³ / Denmark / Tulnukas 3 / Estonia / Alien³ / France / Alien 3 / Germany / Άλιεν³: Η Τελική Αναμέτρηση / Greece / A végső megoldás: Halál / Hungary / Alien³ / Italy / Svešais³ / Latvia / Svetimas 3 / Lithuania / Alien³ / Mexico / Alien 3 / Peru / Obcy 3 / Poland / Alien 3 - A Desforra / Portugal / Alien 3 / Romania / Чужой 3 / Russia / Туђин 3 / Serbia / Votrelec 3 / Slovakia / Osmi potnik 3 / Slovenia / Alien³ / Spain / 異形3 / Taiwan / Чужий 3 / Ukraine / Alien³ / UK / Alien³ / USA / Alien 3 / Uruguay
最终得到这样的数组
Array ( [0] => Amelie / Argentina [1] => Amelie / Australia [2] => O Fabuloso Destino de Amélie Poulain / Brazil [3] => El fabuloso destino de Amelie Poulain / Chile [4] => Amelie / Croatia [5] => Amélie z Montmartru / Czech Republic [6] => Den fabelagtige Amélie fra Montmartre / Denmark [7] => Amélie / Finland [8] => Le Fabuleux Destin d'Amélie Poulain / France [9] => Die fabelhafte Welt der Amelie / Germany [10] => Αμελί / Greece [11] => Amélie csodálatos élete / Hungary [12] => Il favoloso mondo di Amélie / Italy [13] => Ameri / Japan [14] => Amelija iš Monmartro / Lithuania [15] => Amelie / Mexico [16] => Den fabelaktige Amélie fra Montmartre / Norway [17] => Amelie / Peru [18] => Amelia / Poland [19] => O Fabuloso Destino de Amélie / Portugal [20] => Amélie / Romania [21] => Амели / Russia [22] => Чудесна судбина Амелије Пулен / Serbia [23] => Amélia / Slovakia [24] => Amelie / Spain [25] => Amelie från Montmartre / Sweden [26] => 艾蜜莉的異想世界 / Taiwan [27] => Амелі / Ukraine [28] => Amélie / UK [29] => Amélie / USA [30] => Ameli / Uzbekistan [31] => Amélie / World-wide )
我最终得到的只是
/(.* \/ .*) /
,它没有做我想要的,因为它把最后一对留在数组之外,因为模式末尾的空白,如您所见 here...
请不要提出爆炸和内爆每隔一个块的其他解决方案。它必须用正则表达式来完成。 TIA.
您可以为此使用 preg_match_all
。所以如果你输入的字符串是$str
,那么$result
可以实现如下:
$count = preg_match_all("~[^/]+/[^/]+~", $str, $result);
我需要你的帮助,因为我不太擅长正则表达式!
我想在每两次出现“/”时拆分以下字符串
Alien 3 / Argentina / Alien 3 / Brazil / Alien 3 / Croatia / Vetřelec 3 / Czech Republic / Vetřelec 3 / Czechoslovakia / Alien³ / Denmark / Tulnukas 3 / Estonia / Alien³ / France / Alien 3 / Germany / Άλιεν³: Η Τελική Αναμέτρηση / Greece / A végső megoldás: Halál / Hungary / Alien³ / Italy / Svešais³ / Latvia / Svetimas 3 / Lithuania / Alien³ / Mexico / Alien 3 / Peru / Obcy 3 / Poland / Alien 3 - A Desforra / Portugal / Alien 3 / Romania / Чужой 3 / Russia / Туђин 3 / Serbia / Votrelec 3 / Slovakia / Osmi potnik 3 / Slovenia / Alien³ / Spain / 異形3 / Taiwan / Чужий 3 / Ukraine / Alien³ / UK / Alien³ / USA / Alien 3 / Uruguay
最终得到这样的数组
Array ( [0] => Amelie / Argentina [1] => Amelie / Australia [2] => O Fabuloso Destino de Amélie Poulain / Brazil [3] => El fabuloso destino de Amelie Poulain / Chile [4] => Amelie / Croatia [5] => Amélie z Montmartru / Czech Republic [6] => Den fabelagtige Amélie fra Montmartre / Denmark [7] => Amélie / Finland [8] => Le Fabuleux Destin d'Amélie Poulain / France [9] => Die fabelhafte Welt der Amelie / Germany [10] => Αμελί / Greece [11] => Amélie csodálatos élete / Hungary [12] => Il favoloso mondo di Amélie / Italy [13] => Ameri / Japan [14] => Amelija iš Monmartro / Lithuania [15] => Amelie / Mexico [16] => Den fabelaktige Amélie fra Montmartre / Norway [17] => Amelie / Peru [18] => Amelia / Poland [19] => O Fabuloso Destino de Amélie / Portugal [20] => Amélie / Romania [21] => Амели / Russia [22] => Чудесна судбина Амелије Пулен / Serbia [23] => Amélia / Slovakia [24] => Amelie / Spain [25] => Amelie från Montmartre / Sweden [26] => 艾蜜莉的異想世界 / Taiwan [27] => Амелі / Ukraine [28] => Amélie / UK [29] => Amélie / USA [30] => Ameli / Uzbekistan [31] => Amélie / World-wide )
我最终得到的只是
/(.* \/ .*) /
,它没有做我想要的,因为它把最后一对留在数组之外,因为模式末尾的空白,如您所见 here...
请不要提出爆炸和内爆每隔一个块的其他解决方案。它必须用正则表达式来完成。 TIA.
您可以为此使用 preg_match_all
。所以如果你输入的字符串是$str
,那么$result
可以实现如下:
$count = preg_match_all("~[^/]+/[^/]+~", $str, $result);