Danny: RegEx-Problem

Beitrag lesen

Hallo,

es soll ein Teilstring in Anführungszeichen ermittelt werden. Zugelassen sind " und ' wobei innerhalb der Anführungszeichen diese auch maskiert vorkommen können. Bsp:

<a href="foo.html" title="das ist ein "Test" id="test">

Wie gebe ich dem RegEx-Interpreter zu verstehen, das der Teil von " oder ' bis zum nächsten solchen Anführungszeichen incl. maskierter Anführungszeichen gespeichert werden soll ?

Mein Ansatz:

(\s+)  # 1. Leerzeichen vor Attrname (muß min. 1)
(\S+)  # 2. Attrname
(\s*)  # 3. Leerzeichen vor Gleichzeichen (kann)
=
(\s*)  # 4. Leerzeichen vor Anführungszeichen (kann)
(["'])?  # 5. Anführungszeichen (kann)
(?(5) # wenn Anführungszeichen
  (.*?)\5  # dann Attrwert = Zeichenkette bis zum nächsten Anführungszeichen
  | ([^\s>]+)  # sonst Attrwert = Zeichenkette bis zum nächsten Leerzeichen, bzw. Tagende

Das Problem:

(.*?)\5
Damit wird ja der kürzeste Weg gewählt, also nur z.B. " bis " gesucht und nicht von " über " bis "
Lasse ich das Fragezeichen jedoch weg, funktioniert es auch nicht, die einzelnen Attribute werden nicht mehr einzeln erkannt...

Trotz nachschlagen im PHP-Manual komme ich nicht drauf.

MfG