ich Daten in diesem Format haben:regex bekommen alles außer letzte Wort und bis finden Sie einen Text
1 DOPPEL TYP I MEERBLICK HALBPENSION
FRÜHBUCHER 20%
INKL. REISELEITUNG UND TRANSFER AB/BIS
FLUGHAFEN
KEIN INFO-TREFFEN IM HOTEL! REISELEITUNG IST TELEFONISCH ZU ERREICHEN UND AUF ANFRAGE
F367655 HERR WILKAT, CHRISTINE O 05.01.15
F367655 HERR LEBEDIES, HANS-JOACHIM O 05.01.15
Und ich möchte erfassen: 1 und DOPPEL TYP I MEERBLICK und alle Text zwischen "FFRUHBUCHER .." und "ANFRAGE" (also F367655 ist der Endbegrenzer) als verschiedene Übereinstimmungen. aber ich habe diese regex, die erfasst: 1 und Halbpension:
$re = "/\\s(\\d{1})(\\w+\\W{1,2})*/";
$str = " 1 DOPPEL TYP I MEERBLICK HALBPENSION\n FRÜHBUCHER 20%\n INKL. REISELEITUNG UND TRANSFER AB/BIS\n FLUGHAFEN\n KEIN INFO-TREFFEN IM HOTEL! REISELEITUNG IST TELEFONISCH ZU ERREICHEN UND AUF ANFRAGE\n F367655 HERR WILKAT, CHRISTINE O 05.01.15\n F367655 HERR LEBEDIES, HANS-JOACHIM O 05.01.15";
preg_match_all($re, $str, $matches);
Ich teste hier: Regex101
Anstatt also das letzte Wort der Erfassung („HALPENSION“) ich alles außer letzte Wort erfassen möchten . Und auch was nach Halbpension (vielleicht anderes Wort) und vor so etwas wie F367655 ("Frühbucher 20% INKL. Reiseleitung UND TRANSFER AB/BIS FLUGHAFEN KEINER INFO-TREFFEN IM HOTEL! Reiseleitung IST TELEFONISCH ZU ERREICHEN UND AUF ANFRAGE").
Ich habe mehrere Lösungen versucht, aber ich bekomme es nicht zur Arbeit.
Vielen Dank im Voraus, für Ihre Hilfe!
Nicht sicher, was Sie brauchen, versuchen Sie [ ' '~^\ s * (\ d) \ s * (. +?) \ s * \ b \ w + $ ~ ''] (https://regex101.com/r/zP1wM7/2). Das wird Capture * '1' und' DOPPEL TYP I MEERBLICK'. –
Verwenden Sie '(\ w + \ W {1,2}) *'. Dies wird alles außer dem letzten Wort erfassen. –
Danke, funktioniert aber wenn ich Text nach doesnot habe. Sorry vergessen zu setzen – Mary