Ben XML nitelikleri içerisinde meydana gelen tüm 'etiketleri' (örneğin% thisIsATag%) maç gerekir. (Not: Ben geçerli XML almak için garantili değilim, bu yüzden tam DOM kastetmek kullanmaya gerek yoktur). Benim regex tek niteliğinde two etiketleri olduğu zamanlar dışında, çalışıyor, sadece sonuncusu döner.
Diğer bir deyişle, bu düzenli ifade TaG1, tag2, ..., tag6 bulmalıdır. Ancak, tag2 ve Tag5 atlar.
İşte size (PHP) için eğlenceli küçük bir test koşum bulunuyor:
<?php
$xml = <<<XML
<data>
<slideshow width="625" height="250">
<screen delay="%tag1%">
<text x="30%" y="50%" animatefromx="800">
<line fontsize="32" fontstyle="bold" text="Screen One!%tag2% %tag3%"/>
</text>
</screen>
<screen delay='%tag4%'>
<text x="30%" y="50%" animatefromx="800">
<line fontsize='32' fontstyle='bold' text='Screen 2!%tag5%%tag6%'/>
</text>
</screen>
<screen>
<text x="30%" y="50%" animatefromx="800">
<line fontsize="32" fontstyle="bold" text="Screen Tres!"/>
</text>
</screen>
<screen>
<text x="30%" y="50%" animatefromx="800">
<line fontsize="32" fontstyle="bold" text="Screen FOURRRR!"/>
</text>
</screen>
</slideshow>
</data>
XML;
$matches = null;
preg_match_all('#<[^>]+("([^%>"]*%([^%>"]+)%[^%>"]*)+"|\'([^%>\']*%([^%>\']+)%[^%>\']*)+\')[^>]*>#i', $xml, $matches);
print_r($matches);
?>
Teşekkürler! :)