Thread Problem mit Regexp (20 answers)
Opened by Nordlicht at 2012-06-13 08:21

Nordlicht
 2012-06-13 08:21
#158930 #158930
User since
2005-10-16
182 Artikel
BenutzerIn
[default_avatar]
Hallo Leute,

Ich habe einen größeren Regexp-Ausdruck gebastelt. Der Ausdruck soll bestimmte Teile eines zusammenhängenden HTML-Codeblocks isolieren. Der Ausdruck besteht aus mehreren Lookahead-Zusicherungen.
Syntax: (?:MUSTER)
Mehrere dieser Suchmuster sind durch .*? verbunden, weil ich den HTML-Code zwischen den erkannten Mustern ignorieren möchte... die Reihenfolge in der die Muster Auftreten ist allerdings sehr wichtig, da es die gleichen Muster noch an anderen Stellen des HTML-Codes gibt bzw. geben könnte.

Ich hoffe das war halbwegs verständlich erklärt :-)

Jetzt mein Problem: Ich verstehe diese Fehlermeldung nicht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
Having no space between pattern and following word is deprecated at
D:\anyPath\anyFile.pl line 17.
Unmatched ( in regex; marked by <-- HERE in
m/
(?:
<div class="listRow">
.*?
(?:class="productLink" href="(.*?)")
.*?
( <-- HERE ?:<span class="product">.*?<span>(.*?)</
at D:\Developement\Perl\Harvester\test.pl line 17.

Ich hab in die Meldung ein paar Newlines eingefügt, in der Hoffnung, dass es so etwas übersichtlicher wird...

Kann mir Jemand sagen, was der Compiler von mir will? Ich verstehe es nicht.

Ich weiß, dass HTML-Code mit regulären Ausdrücken zu parsen nicht unbedingt "best practice" ist, aber ich mache das ganz bewusst. Bitte helft mir einfach nur den Fehler zu finden.

Gruß, Nord.

modedit Editiert von pq: stichwort "regex" hinzugefügt
Last edited: 2012-06-13 11:35:39 +0200 (CEST)

View full thread Problem mit Regexp