Jump to content
php.lv forumi

Regulārā izteiksme


Slammer

Recommended Posts

Sveicināti,

 

cenšos uzrakstīt regulāru izteiksmi, bet pagaidām ne pārāk labi sanāk.

Ir pieejams strings - ar visu lapas html saturu.

 

Ir jādabū no šī satura linku (<a> tegu) href atribūta saturu, ja starp <a></a> tegiem atrodas nepieciešamais kritērijs.

piemērs: no šī koda jāizķer tikai 'index.php?item&module=1&category=13'

<?php
$a = "nail"; //meklējamais kritērijs starp <a></a>
$s =<<<EOF
<a class="level2" onmouseout="this.style.background = '';" onmouseover="this.style.background ='#2c7cf4';" href="index.php?item&module=1&category=11" style="">  kaut kas cits </a>
<img> </img>
<br>
<a class="level2" onmouseout="this.style.background = '';" onmouseover="this.style.background ='#2c7cf4';" href="index.php?item&module=1&category=13" style="">  nails </a>
<a class="level2" onmouseout="this.style.background = '';" onmouseover="this.style.background ='#2c7cf4';" href="index.php?item&module=1&category=15" style="">  kaut kas cits2 </a>
EOF;
//šitik tālu izdevās izveidot izteiksmi, kas strādā daļēji pareizi
$regexp = "#<a\s[^>]*href=\"([^\"]*)\"[^>]*>.*{$a}+.*</a>[^<]*#siU";
/* rule explanation
# - store pattern
\s - whitespace char
. - any char (exclude newline)
* - 0 or more
? - match minimal string combo
s - (PCRE_DOTALL) modifier
i - match UPPER or lower case letters
^ - not
U - (PCRE_UNGREEDY) modif.
*/
preg_match_all($regexp, $s, $matches);
var_dump($matches);
?>

paldies!

Edited by Slammer
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...