Hallo zusammen,
puhh die Reguläre Ausdrücke machen mich noch fertig :-)
Ich suche in einer Textdatei nach Text und zwar alles zwischen:
*OpenUI *MediaType/Media Type:PickOne
...
...
*CloseUI: *MediaType
Das Wort "MediaType" ist bekannt und steht in der Variablen $element.
Jetzt gibt es aber auch Stellen bzw. Dateien wo vor dem Wort "MediaType" noch zwei Buchstaben sind, also etwas "EFMediaType" oder "RXMediaType" etc.:
also:
*OpenUI *EFMediaType/Media Type:PickOne
...
...
*CloseUI: *EFMediaType
Jetzt würde ich gerne die Regex so abändern das es immer für beide Varianten funktioniert.
Ich habe jetzt versucht hinter dem "*" und vor $element das Suchmuster (.*?) zu setzen.
if (preg_match_all("#\OpenUI \(.*?)".$element."(/(.*?):|:) (.*?)\CloseUI: \(.*?)".$element."#s", $string1, $contents)){
print_r($contents);
if (preg_match_all("#\*(.*?)".$element." (.*?)/(.*?): {1,}"(.*?)"#s", $contents[0][0], $input)){
...
Jetzt wird zwar was gefunden aber das Ergebnis in $contents ist nun viel größer und enthält alles mögliche.
Mache ich was falsch?
Bin für jeden Rat dankbar.
vielen Dank und viele Grüße
hawk