SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Förstasida   Anmälning   Postarkiv   Forum   Kalender   Sök
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

SV: [PERL] Hjælp til Perl Regular Expressions



Hejsa

Hæhæ Jeg har selv løst problemet! Jubii!

Her kommer løsningen hvis nogen skulle være interesseret:
(<$tagnavn((?!(<)|(>)).)*/>)|(?U:<$tagnavn([^>])*>.*(?R)*</$tagnavn>)

Funktionen: 
<?php
$test_tekst=<<< START
Dette er en test <mytag id="titletop" type="text" value="boo">yjyj</mytag>
foo test <mytag id="synopsis" type="textarea" value="eksempel
data">gdfgfg</mytag> Dette er en test
Dette er en test <mytag id="tbl" type="table"><table> ... </table>gdhgfg
<mytag id="the-end" type="text"/></mytag> <mytag id="tbl"
type="table"><table> ... </table>gdhgfg <mytag id="the-end"
type="text"/></mytag>
Dette er en test <mytag id="tbl2" type="table"><mytag id="tds"
type="text"/><mytag id="tds" type="text"/><mytag id="tds"
type="text"/></mytag> Dette er en test
<mytag id="tbl3" type="table">fdgfdgf<mytag id="tds2"
type="text"></mytag><mytag id="tds2" type="text"></mytag><mytag id="tds2"
type="text">fgffgf</mytag>75</mytag>
Dette er en test <mytag id="the-end" type="text"/> Dette er en test <mytag
id="the-end" type="text"/>
Dette er en test <mYtag id="the-end" type="text"/>

<html> <head>  <title><mytag id="Title" title="Titel" 
type="text">Foredrag</mytag></title> </head> <body> <table> <mytag
id="tableA" title="Foredrag" type="table">  <tr>  <td><mytag id="itemBA" 
title="Dato" type="text" cols="20">Angiv dato</mytag></td>  <td><mytag
id="itemBB" title="Sted" type="text" cols="20">Angiv sted</mytag></td> </tr>
</mytag> </table> </body> </html>
START;

function tage_tags_ud($tekst, $tagnavn)
{
//Reg ex mønster som den søger efter.
$moenster =
"(<$tagnavn((?!(<)|(>)).)*/>)|(?U:<$tagnavn([^>])*>.*(?R)*</$tagnavn>)";

//Kører igennem hele teksten og laver en multidimensional array
preg_match_all("-$moenster-is", $tekst, $match);

//Returner array
return $match[0];
}

$test = tage_tags_ud($test_tekst,"mytag");

for ($i=0; $i<count($test); $i++){
echo "[$i] ".$test[$i]."\n";
}
?>


Med venlig hislen
Amir Salihefendic
-- 
     Name: Amir Salihefendic
    Internet ID:  <mailto:sslug@sslug> sslug@sslug
             (*·.¸(`·.¸ ¸.·´)¸.·*)
      *·.¸¸.* www.amix.dk *.¸¸.·*
             (¸.·´(¸.·* *·.¸)`·.¸)
 




 
Förstasida   Anmälning   Postarkiv   Översikt   Kalender   Sök

 
 
Fel och synpunkter angående webb-sidorna skickas till <www_admin>. Senaste ändring 2005-08-10, klockan 19:56
Denna sidan underholds av MHonArc .