PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : perl ignoriert regex wenn eine pipe enthalten ist



bert2002
18-04-2010, 21:43
Hi,

ich habe eine regex die wunderbar funktioniert.


<b><a href="(.*)" target="_blank">(.*)</a></b>

leider findet sie nichts wenn bei dem linknamen der Text mit einer pipe (|) anfängt. Wie kann das sein, weil doch eigentlich alles was da kommt genommen werden soll. Kennt einer das Problem?

Danke! && MfG bert2002

msi
19-04-2010, 10:02
Hi,

ich habe eine regex die wunderbar funktioniert.


<b><a href="(.*)" target="_blank">(.*)</a></b>

leider findet sie nichts wenn bei dem linknamen der Text mit einer pipe (|) anfängt. Wie kann das sein, weil doch eigentlich alles was da kommt genommen werden soll. Kennt einer das Problem?

Danke! && MfG bert2002


| wird von . schon auch erkannt, das problem wird wohl woanderst liegen. zB weil das a tag nicht genau mit _blank"> endet?

außerdem solltest du keine gierigen operatoren verwenden weil du sonst uU zuviel matchst. lieber

<a\s+[^>]*href="([^"]*)"[^>]*>(.*?)</a>

verwenden

bert2002
19-04-2010, 17:30
| wird von . schon auch erkannt, das problem wird wohl woanderst liegen. zB weil das a tag nicht genau mit _blank"> endet?

außerdem solltest du keine gierigen operatoren verwenden weil du sonst uU zuviel matchst. lieber

<a\s+[^>]*href="([^"]*)"[^>]*>(.*?)</a>

verwenden

Tja was soll ich sagen. Funktioniert ;) und du hattest recht mit dem target. Frage mich wie mir das nicht auffallen konnte...

Vielen Dank.