mam ciąg jak na poniższymJak sprawić, by ten dziwny ciąg eksplodował w PHP?
DAS-1111[DR-Helpfull-R]-RUN--[121668688374]-N-[+helpfull_+string]
Powyższy ciąg jest rodzajem sformatowane w grupach, które wygląda następująco:
A-B[C]-D-E-[F]-G-[H]
Think jest to, że chciałbym przetwarzać niektóre z tych grupy i lubię sprawiać, że coś takiego eksploduje.
powiem jak, bo mam wypróbować ten kod:
$string = 'DAS-1111[DR-Helpfull-R]-RUN--[121668688374]-N-[+helpfull_+string]';
$parts = explode('-', $string);
print_r($parts);
i pojawia się następujący wynik:
Array
(
[0] => DAS
[1] => 1111[DR
[2] => Helpfull
[3] => R]
[4] => RUN
[5] =>
[6] => [121668688374]
[7] => N
[8] => [+helpfull_+string]
)
, że nie jest to, czego potrzebuję.
Co potrzebne jest następujące wyjścia:
Array
(
[0] => DAS
[1] => 1111[DR-Helpfull-R]
[2] => RUN
[3] =>
[4] => [121668688374]
[5] => N
[6] => [+helpfull_+string]
)
Czy ktoś mógłby sugerować, piękny i elegancki sposób, aby rozłożyć ten ciąg w sposób, jaki jest potrzebny?
o czym zapomniałem wspomnieć, to że ciąg może zawierać więcej lub mniej grup. Przykłady:
DAS-1111[DR-Helpfull-R]-RUN--[121668688374]-N-[+helpfull_+string]
DAS-1111[DR-Helpfull-R]-RUN--[121668688374]
DAS-1111[DR-Helpfull-R]-RUN--[121668688374]-N-[+helpfull_+string]-anotherPart
Aktualizuj 1
Jak wspomniano przez @axiac The preg_split
może wykonać pracę. Ale czy możesz teraz pomóc w regex?
Muszę spróbować tego, ale wydaje się, że to nie jest prawidłowe:
(?!\]\-)\-
To wygląda na zadanie dla [ 'preg_split()'] (http://php.net/manual/en/function.preg-split.php). – axiac
Czy ciąg składa się ze stałych grup długości? Czy zatem pierwsza kolumna (DAS w twoim przykładzie) zawsze będzie pierwszymi trzema znakami? Czy drugie 18 znaków itp.? –
@axiac Mmm Nie znałem tej funkcji. Mam zamiar spróbować wrócić :) –