Ich habe ein Array, die etwa wie folgt aussieht:PHP Regular Expression preg_grep
$array[] = 'MT0001ENG Apricot, dried';
$array[] = 'MT0001SYS Prunus armeniaca L.';
$array[] = 'MT0001YLD 0';
$array[] = 'MT0001MGR 06';
$array[] = 'MT0001SGR 20';
$array[] = 'MT0001NCF 6.25';
$array[] = 'MT0001FCF 0.800';
$array[] = 'MT0001000 1159 00050';
$array[] = 'MT0001001 2.9 2.6 3.5 4 05165';
$array[] = 'MT0001002 0.1 0.1 0.1 4 00050';
$array[] = 'MT0003ENG Pineapple, raw';
$array[] = 'MT0003SYS Ananas comosus (L.) Merr.';
$array[] = 'MT0003YLD 47';
$array[] = 'MT0003MGR 06';
$array[] = 'MT0003SGR 40';
$array[] = 'MT0003NCF 6.25';
$array[] = 'MT0003FCF 0.800';
$array[] = 'MT0003000 232 00050';
$array[] = 'MT0003001 0.5 0.5 0.6 4 05165';
$array[] = 'MT0003002 0.1 0.1 0.1 4 00050';
ich alle Linien bin setzen, die die Namen enthält, in ein Array $ Namen wie folgt aufgerufen:
$names = preg_grep("/ENG/", $array);
Aber jetzt möchte ich alle Zeilen, die die Protein-Info enthält, in ein Array namens $ Protein setzen. Beispiel für Proteinlinien ist:
$array[] = 'MT0001001 2.9 2.6 3.5 4 05165';
$array[] = 'MT0003001 0.5 0.5 0.6 4 05165';
Wie Sie sehen können, gibt es ein Muster. Alle Linien beginnen mit MT. Gefolgt von einer 4-stelligen Produktnummer. Gefolgt von 3 Zeichen, und für Proteine, das sind 001 :)
Ich habe Folgendes versucht, ohne Glück!
$proteins = preg_grep("/MT{4}[0-9]001/", $array);
Überprüfen Sie meine aktualisierte Frage :) – mnstrflkrn
So müssen Sie nur den '{4}' Quantifizierer nach dem Dezimalsmuster '[0-9]' dann tauschen. Fügen Sie auch einen Anker '^' am Anfang hinzu, weil Sie den String-Anfang bestätigen sollten. – mario
Welche Daten möchten Sie erhalten? Zum Beispiel, in der ersten Array-Element (MT0001001), möchten Sie 2,9 oder 2,6 oder 3,5 usw.? – Odyssey