So teilen Sie eine Zeichenfolge mit preg_split [Duplikat]Php

PHP-Programmierer chatten hier
Anonymous
 So teilen Sie eine Zeichenfolge mit preg_split [Duplikat]

Post by Anonymous »

Ich möchte eine einfache Zeichenfolge wie „A1B22C523E10D14G9“ in ein Array mit getrennten Buchstaben und Zahlen aufteilen,
z. B. 'A', '1', 'B', '22', 'C', '523', 'E', '10', 'D', '14', 'G', '9'
Die Eingabe erfolgt immer paarweise und jedes Paar besteht immer aus einem einzelnen Großbuchstaben, gefolgt von 1-4 Ziffern.
Soweit ich das beurteilen kann, sollte das funktionieren, aber es gibt nur die zurück Zahlen.

Code: Select all

$elements = preg_split('/[A-Z]/', $cols, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
https://onlinephp.io/preg-split?pattern ... 14G9&limit =52&flags%5B0%5D=PREG_SPLIT_NO_EMPTY&flags%5B1%5D=PREG_SPLIT_DELIM_CAPTURE&v=8.2.29
Dies unterscheidet sich von der anderen Frage, da hier die Buchstaben und Zahlen nicht als separate Elemente zurückgegeben werden, wie ich in meiner Frage angegeben habe.
Da mein Eingabeformat sehr einfach ist, suche ich nach der einfachsten Lösung, die meiner Meinung nach laut Handbuch mit preg_split funktionieren sollte.
Die Ausgabe, die ich erhalte, ist die gleiche wie bei onlinephp.io, also funktionieren entweder die Flags nicht oder ich verstehe nicht, was sie bedeuten.
Anders ausgedrückt: Warum geben die folgenden Zeilen beide die gleiche Antwort:

Code: Select all

print_r(preg_split('/[A-Z]/','A1B22C523E10D14G9', -1, PREG_SPLIT_NO_EMPTY));

Code: Select all

print_r(preg_split('/[A-Z]/','A1B22C523E10D14G9', -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE));
Beide ergeben:

Code: Select all

Array ( [0] => 1 [1] => 22 [2] => 523 [3] => 10 [4] => 14 [5] => 9 )
Ich verwende PHP Version 8.4.11.
PREG_SPLIT_NO_EMPTY und PREG_SPLIT_DELIM_CAPTURE sind auf 1 bzw. 2 gesetzt

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post