当前位置: 代码迷 >> PHP >> 帮忙写歌正则表述吧,弄了半天没搞明白
  详细解决方案

帮忙写歌正则表述吧,弄了半天没搞明白

热度:161   发布时间:2013-04-20 19:43:01.0
帮忙写歌正则表达吧,弄了半天没搞明白.

$content ='<span class="description"><ul>
<li><a href="/download/T/h/e/The-North-Face-womens-mens.gif" class="popup-570-550" target="_blank">The North Face Size Chart</a> </li>
<li>Breathe deeply and slow your racing brain in the Be Calm Tank.</li>
<li>VaporWick technology sweeps moisture away from your skin for quick evaporation to leave you feeling spectacular.</li>
<li>Structured V-panel neckline.</li>
<li>Racerback styling allows arms complete range of movement.</li>
<li>Wide waistband with ruched side seams.</li>
<li>Eye-catching burnout design.</li>
<li>Logo at center back.</li>
<li><em>Sports bra not included.</em></li>
<li>73% polyester, 27% cotton.</li>
<li>Machine wash cold, tumble dry low.</li>
<li>Imported.</li>
<li class="measurements">Measurements:
<ul>
<li>Length: 25 in</li>
</ul>
</li>
<li>Product measurements were taken using size XS. Please note that measurements may vary by size.</li>
<li><a href="/c/measurements" target="_blank">View This Model Measurements</a></li>
</ul></span>';
preg_match_all('/<li>(^<a*?)<\/li>/si',$content,$matches);
print_r($matches);

什么正则表达式,可以把有
<a 这个标签的排除掉吗.但是保留<em等其他标签,
提取所有的li的内容.
写得我混乱了. 最后那个数组[1]应该大约是这样的.
matches[1][x]=Breathe deeply and slow your racing brain in the Be Calm Tank.
matches[1][x]=VaporWick technology sweeps moisture away from your skin for quick evaporation to leave you feeling spectacular.
matches[1][x]=Structured V-panel neckline.
.....
matches[1][x]=<em>Sports bra not included.</em>
matches[1][x]=73% polyester, 27% cotton.
...
简单说就是排除<li>里面以<a开头的行.

------解决方案--------------------
preg_match_all('/<li>(?!<a...)(.+)<\/li>/siU',$content,$matches);
  相关解决方案