phpbar.de logo

Mailinglisten-Archive

[php] Regular Expressions 1 oder 2 Ergebnisse

[php] Regular Expressions 1 oder 2 Ergebnisse

Sebastian Mendel lists at sebastianmendel.de
Mit Mai 9 09:55:29 CEST 2007


ANGEL Harald schrieb:
>  
> Sebastian Mendel schrieb:
>> der oder-Operand '|' müsste in Klammern einschließlich der zu suchenden Strings,
>> '#\(?:[Bild:([0-9]+)\]|\[Bild:([0-9]+),([0-9]+)\])#';
> 
> Hallo Sebastian, danke noch mal für deine Hilfe und sry, weil ich ein so altes Thema noch mal aufgreife, aber:
> Das mit den Klammern hab ich verstanden, aber deine "vereinfachte" Form nicht ganz:
>> '#\[Bild:([0-9]+)(?:,([0-9]+))?\]#';
> 
> Ich hab jetzt nämlich beim editieren das gleiche Problem:
> Der Tag kann diese 4 Aussehen haben:
> <img src='bild.jpg' id='21' />
> <img src='bild.jpg' id='21' style='width:100px;' />
> <img src='bild.jpg' id='21' style='height:200px;' />
> <img src='bild.jpg' id='21' style='width:100px;height:200px;' />
> 
> Ich hab da jetzt einen mir scheint ziemlich umständlichen weg:
> 
> $search = "#<img src='(.*)' id='([0-9]+)' style='(?:width:([0-9]+)px;|height:([0-9]+)px;|width:([0-9]+)px;height:([0-9]+)px;)' />#";

versteh jetzt zwar nciht gnaz was das mit dem vorrigen zu tun, aber egal


> Das funktioniert zwar, aber die weite und höhe steht dann immer an unterschiedlichen Stellen im Array.
> Kann man das hübscher hinbekommen?

mhm, ein http://php.net/preg_match_all und:

'/(height|width):([0-9]+)px;/'

sollte helfen

mach dann einfach mal ein print_r() mit dem Ergebnis ($matches), dann
müssteste sehen wie du es verwenden kannst

ansonsten frag nochmal


-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive