preg_match_all Problem: Compilation failed: unmatched parentheses

PowerCheat

Erfahrenes Mitglied
Hallo liebe Tutorials-Mitglieder!

Vllt. bin ich aktuell etwas, durch meine erkältung angeschlagen das ich meinen Fehler nicht entdecke. Daher hoffe ich das ihr mir mal kurzer Hand auf die sprünge helfen könnt.



PHP:
$pattern='~Angriff 	(.*)
(.+) \(([0-9]+)|([0-9]+)\) .* 	([^\s]+) [([^\]]+)]
(.+) \(([0-9]+)|([0-9]+)\) .* 	([^\t]+) 	([0-9:]+)~is';
preg_match_all($pattern,$data,$match);

Ich habe sowohl die Backslash escaped, als auch unecaped ausprobiert. Jedoch bisher ohne erfolg.

Ich danke euch für jede Hilfestellung.
 
Unmatched parentheses bedeutet das zu einer schließenden Klammer keine passende geöffnete Klammer gefunden wurde.

Ich habe sowohl die Backslash escaped, als auch unecaped ausprobiert. Jedoch bisher ohne erfolg.
Die müssen escaped werden sonst gelten sie logischerweise selbst als escape Zeichen.
An den roten Stellen wird von dir immer eine Klammer escaped.

~Angriff (.*)
(.+) \(([0-9]+)|([0-9]+)\) .* ([^\s]+) [([^\]]+)]
(.+) \(([0-9]+)|([0-9]+)\) .* ([^\t]+) ([0-9:]+)~is'
 
PHP:
$pattern='~Angriff[\t\s]+([^\n]+)
([^\(\n]+) \(([0-9]+)|([0-9]+)\) [K0-9]+[\t\s]+([^\s\t]+) \[([^\]]+)\]
([^\(\n]+) \(([0-9]+)|([0-9]+)\) [K0-9]+[\t\s]+([^\t]+) 	([0-9:]+)~is';

wieso teilt sich nun der string auf?

Code:
Array
(
    [0] => Array
        (
            [0] => Angriff  	 Captain Iglo
224 Iglo (526
            [1] => 623) K65 	Heute um 23:08 Uhr 	14:08:23
            [2] => Angriff 	Captain Iglo
224 Iglo (526
            [3] => 623) K65 	Heute um 23:08 Uhr 	14:08:25
            [4] => Angriff 	Captain Iglo
224.4 Iglo (525
            [5] => 615) K65 	Heute um 23:11 Uhr 	14:11:27
        )


Wenn jemand so freundlich wäre mir den Pattern auf diesen String zu erstellen, wäre mir sehr geholfen. Ich kriegs heute einfach nicht hin.

Code:
Angriff  	 Captain Iglo
222 Iglo (520|649) K65 	val Orden [~RA~]
[27] Burg Theed (536|625) K65 	Heute um 17:16 Uhr 	6:42:51
 
Zuletzt bearbeitet:
Hier als Starthilfe (mit regex online tester zusammen gekritzelt):
Code:
Angriff\s+([^\n]+)[\r|\n]+(\d+)\s+(\S+)\s+([\d|\||\(|\)]+)\s+K\d+\s+([^\[]+)\s+\[([^\]]+)\][\r|\n]+([\[|\d|\]]+)\s+([^\(]+)([\d|\||\(|\)]+)\s+K\d+\s+([^\s]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+)\s+([\d|:]+)

Angriff Captain Iglo
222 Iglo (520|649) K65 val Orden [~RA~]
[27] Burg Theed (536|625) K65 Heute um 17:16 Uhr 6:42:51

PHP:
Array
(
    [0] => Array
        (
            [0] => Angriff Captain Iglo
222 Iglo (520|649) K65 val Orden [~RA~]
[27] Burg Theed (536|625) K65 Heute um 17:16 Uhr 6:42:51
        )

    [1] => Array
        (
            [0] => Captain Iglo
        )

    [2] => Array
        (
            [0] => 222
        )

    [3] => Array
        (
            [0] => Iglo
        )

    [4] => Array
        (
            [0] => (520|649)
        )

    [5] => Array
        (
            [0] => val Orden
        )

    [6] => Array
        (
            [0] => ~RA~
        )

    [7] => Array
        (
            [0] => [27]
        )

    [8] => Array
        (
            [0] => Burg Theed 
        )

    [9] => Array
        (
            [0] => (536|625)
        )

    [10] => Array
        (
            [0] => Heute um 17:16 Uhr
        )

    [11] => Array
        (
            [0] => 6:42:51
        )

)
 
Nun habe ich das nächste Problem:


Code:
 Angriff  	 Captain Iglo
303.3 Süd (520|724) K75 	ytterstone [~RA~]
Y-10-bei Freunden (561|507) K55 	am 21.06. um 07:05 Uhr 	3 Tage 13:46:06

Code:
Angriff\s+([^\n]+)[\r|\n]+([[:print:]]+)\s+([\d|\||\(|\)]+)\s+K\d+\s+([^\[]+)\s+\[([^\]]+)\][\r|\n]+([[:print:]]+)\s([\d|\||\(|\)]+)\s+K\d+\s+(([^\s]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+)|([^\s]+\s+[\d|.|\d]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+))\s+((\d+\s+Tage?\s+[\d|:]+)|([\d|:]+))

Nun ist noch ein weitere Parameter dazugekommen.
Es kommt vor das wie oben, mal

1 Tag
2 Tage
3 Tage

da steht bevor die Zeit kommt. oben ist mein regex dazu, aber leider keine Übereinstimmung.

Wäre nett, wenn jemand sich mal kurz Zeit nehmen könnte. Probiere den fehler nun seit 2 Std. ausfindig zu machen. Aber null.
 
Mal davon abgesehen das ich sehr wohl ein Ergebnis erhalten habe, habe ich nur noch ein paar Klammern entfern:

PHP:
$pattern = "/Angriff\s+([^\n]+)[\r|\n]+([[:print:]]+)\s+([\d|\||\(|\)]+)\s+K\d+\s+([^\[]+)\s+\[([^\]]+)\][\r|\n]+([[:print:]]+)\s([\d|\||\(|\)]+)\s+K\d+\s+([^\s]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+|[^\s]+\s+[\d|.|\d]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+)\s+(\d+\s+Tage?\s+[\d|:]+|[\d|:]+)/";


0 = Angriff Captain Iglo 303.3 Süd (520|724) K75 ytterstone [~RA~] Y-10-bei Freunden (561|507) K55 am 21.06. um 07:05 Uhr 3 Tage 13:46:06
0 = Captain Iglo
0 = 303.3 Süd
0 = (520|724)
0 = ytterstone
0 = ~RA~
0 = Y-10-bei Freunden
0 = (561|507)
0 = am 21.06. um 07:05 Uhr
0 = 3 Tage 13:46:06


0 = Angriff Captain Iglo 222 Iglo (520|649) K65 val Orden [~RA~] [27] Burg Theed (536|625) K65 Heute um 17:16 Uhr 6:42:51
0 = Captain Iglo
0 = 222 Iglo
0 = (520|649)
0 = val Orden
0 = ~RA~
0 = [27] Burg Theed
0 = (536|625)
0 = Heute um 17:16 Uhr
0 = 6:42:51
 
Danke rd4eva!

ich muss ehrlich gestehen ich bin momentan gesundheitlich angeschlagen. Es wundert mich das ich mein Rechner noch nicht formatiert oder defacted habe ...

Ich danke dir abermals für deine freundliche hilfe!

Kann nur positiv bewerten!


EDIT:
Leider funktioniert es jedoch nicht:

http://www.cliquen-insel.de/kabot/angriff.php

dort bekomme ich nur die ohne tage ausgegeben

PHP:
$pattern='/Angriff\s+([^\n]+)[\r|\n]+([[:print:]]+)\s+([\d|\||\(|\)]+)\s+K\d+\s+([^\[]+)\s+\[([^\]]+)\][\r|\n]+([[:print:]]+)\s([\d|\||\(|\)]+)\s+K\d+\s+([^\s]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+|[^\s]+\s+[\d|.|\d]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+)\s+(\d+\s+Tage?\s+[\d|:]+|[\d|:]+)/';

preg_match_all($pattern,$data,$match,PREG_SET_ORDER);

Code:
 Angriff  	 Captain Iglo
207.6 Iglo (516|654) K65 	val Orden [~RA~]
[43] Burg Jureem (546|632) K65 	am 18.06. um 03:33 Uhr 	7:27:45
Angriff 	Captain Iglo
303.3 Süd (520|724) K75 	ytterstone [~RA~]
Y-10-bei Freunden (561|507) K55 	am 21.06. um 07:05 Uhr 	3 Tage 10:59:26

ausgabe:

Code:
Array
(
    [0] => Array
        (
            [0] => Angriff  	 Captain Iglo
207.6 Iglo (516|654) K65 	val Orden [~RA~]
[43] Burg Jureem (546|632) K65 	am 18.06. um 03:33 Uhr 	7:27:45
            [1] => Captain Iglo
            [2] => 207.6 Iglo
            [3] => (516|654)
            [4] => val Orden
            [5] => ~RA~
            [6] => [43] Burg Jureem
            [7] => (546|632)
            [8] => am 18.06. um 03:33 Uhr
            [9] => 7:27:45
        )

)
 
Zuletzt bearbeitet:
Zurück