PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche regex



Brujah
14-09-2007, 14:11
Hallo Leute,

ich suche eine regex die mir die optionen aus einem select tag heraussucht.
Beispiel:

<select>
<option>hallo1</option>
<option>hallo2</option>
<option>hallo3</option>
</select>
Aber auch das findet:

<select>
<option>hallo1
<option>hallo2
<option>hallo3
</select>


Ich habe bisher das hier geschrieben:

!<option.*?>(.*?)(<\/option>)!i

Das geht aber nur beim ersten Fall.
Hab grad keine Idee wie ich den zweiten Fall auch abdecken kann.
Sind regex experten hier? :-)

BLUESCREEN3D
14-09-2007, 15:25
!<option.*?>(.*?)(<\/option>)!i
Die beiden *? sind quatsch - da kannst du die ? weglassen.
Damit der zweite Fall funktioniert, fehlt nur ein ? am Ende, damit das </option> optional wird:

!<option.*>(.*)(<\/option>)?!i

Brujah
14-09-2007, 16:28
Hast recht.
Das hat jetzt funktioniert:


!<option.*?>(.*)(</option>)?!i

Danke.

msi
17-09-2007, 11:59
Hallo Leute,

ich suche eine regex die mir die optionen aus einem select tag heraussucht.
Beispiel:

<select>
<option>hallo1</option>
<option>hallo2</option>
<option>hallo3</option>
</select>
Aber auch das findet:

<select>
<option>hallo1
<option>hallo2
<option>hallo3
</select>


Ich habe bisher das hier geschrieben:

!<option.*?>(.*?)(<\/option>)!i

Das geht aber nur beim ersten Fall.
Hab grad keine Idee wie ich den zweiten Fall auch abdecken kann.
Sind regex experten hier? :-)

versuchs mal mit



!<option.*?>(.*?)(<\/option>)?!i

Brujah
17-09-2007, 12:06
Ich hatte heute noch eine bessere (da einfachere) Idee.
Jetzt mache ich es so:


!<option.*?>(.*?)(?:<)?!i

Das funktioniert in allen Fällen :-)