Regular Expression: Exakter String soll optional sein

SlowMoe

Grünschnabel
Hi,

ich muss hier leider per regular expressions über jede Menge HTML-Code gehen. Spielt aber in diesem Fall auch keine Rolle denn: Ich suche einen String, der von einem a-Tag eingeschlossen ist. Dieser String KANN von   eingeschlossen sein. Ich möchte also, den eigentlichen String finden (logischwerweise als Gruppe) und zwar ohne die vorangestellten  

Wenn ich die   ebenfalls als Gruppen zusammenfasse und diese mit dem ? Quantifier belege, bekomme ich das richtige Ergebnis (also den reinen Namen, egal ob   davor und dahinter steht). Allerdings in den Fällen mit   entsprechend auch drei Gruppen.

Folgender Text:
Code:
<td><a class="xyz" type='Tab'>&nbsp;Name Eins&nbsp;</a></td>
<td><a class="xyz" type='Tab'>Name Zwei</a></td>
<td><a class="xyz" type='Tab'>&nbsp;Name Drei&nbsp;</a></td>

folgenden Ausdruck habe ich formuliert (ohne die &nbsp; als Gruppe):

(?s)type='Tab'.*?;'>\&nbsp;?(.*?)&nbsp;?</a>

Rauskommen soll also: Name Eins, Name Zwei, Name Drei.

Hat da vielleicht jemand einen Vorschlag wie ich die &nbsp; als OPTIONAL definieren kann?
 
OK hab's. Man sollte öfter die Zeit haben, einfach mal eine Nacht drüber zu schlafen.

Für die, die es dennoch interessiert: Ich habe die vor- und nachstehenden &nbsp; durch optionale, non-capturing groups zusammengefasst. Folgende Syntax:

Code:
(?s)type='Tab'.*?>(?:\&nbsp;)?(.*?)(?:&nbsp;)?</a>
 
Zuletzt bearbeitet:
Zurück