Sophie Mattoug wrote:
> Adam i Agnieszka Gasiorowski FNORD wrote:
>
> > I'm trying to develop a regex for matching
> > with preg_match_all, I want to match such things
> > like image name, image alt text, image title in
> > construct like this:
> >
> > ....html...
> > <div class="class" style="style">
> > <img src="img=name" alt="alt" title="title" />
> > <span class="class" style="style">
> > text
> > </span>
> > </div>
> > ....html...
> > The rexex as for now is:
> >
> >define(
> > 'REGEX_IMAGE_NAMES_AND_TITLES_AND_ALTS_FROM_CONTENT',
> > '{
> > (?:<\s*img\s+src\s*=\s*(?:"|\')?\s*(?:img)?\s*=\s*) # <img>
> > (?>\b\S+\b) # name
> > (?:title\s*=\s*(?:"|\')) # title
> > (?>\b\S*\b)
> > (?:"|\')*\s*
> > (?:alt\s*=\s*(?:"|\')) # alt
> > (?>\b\S*\b)
> > (?:"|\')*\s*
> > (?:\"|\'|>|/>|\s) # <img />
> > }Uix'
> > );
> >
> > , but it does not match. How can I fix it?
> >
> >
>
> It's not so easy to match an entire IMG tag, because first of all the
> attributes are not always in the same order. If I were you, this is what
> I would do :
> ereg("<img ([^>]+)>", $your_text, $img_array);
> $i = 0;
> foreach ($img_array as $img) {
> while (ereg("^(.+)=\"(.+)\"", "", $img, $regs))
> $images[$i][$regs[1]] = $regs[2];
> $i++;
> }
>
> Hope this helps,
What I
really want to get out of this regex is
1) image name
2) image alt text
3) image title text
, so only those three parentheses are of capturing
kind and the rest is marked as non-capturing...
I wonder will this work (if I change this part):
(?:
(?:title\s*=\s*(?:"|\')) # title
(?>\b\S*\b)
(?:"|\')*\s*
|
(?:alt\s*=\s*(?:"|\')) # alt
(?>\b\S*\b)
(?:"|\')*\s*
)
, notice the "or" character. I guess it should
match, as the order is not important now...
I love monster regexes ;8].
--
Seks, seksić, seksolatki... news:pl.soc.seks.moderowana
http://hyperreal.info { iWanToDie } WiNoNa ) (
http://szatanowskie-ladacznice.0-700.pl foReVeR( * )
Poznaj jej zwiewne kształty... http://www.opera.com 007
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php