2014-10-07 68 views
-1

我有字符串是HTML代碼,我想從這個HTML獲得一些標籤。標籤如下:如何正則表達式字符串在PHP

<td width="33%" align="left" class="MID"> 
    <a href="ShowDOTCoByState.cfm?STATE=US&PHY_ST=IA">IOWA</a> 
    </td> 

我怎樣才能得到使用正則表達式的標籤?

+0

沒有人能理解。 – 2014-10-07 06:12:10

+0

@vks您可以將class =「MID」添加到您的正則表達式中,請問 – vmduan 2014-10-07 06:15:29

+0

是否需要匹配整個標籤? – 2014-10-07 06:17:06

回答

1

更好地利用這一點:

<?php 
$html='<td width="33%" align="left" class="MID"><a href="ShowDOTCoByState.cfm?STATE=US&amp;PHY_ST=IA">IOWA</a></td>" id="blabah" >help</a>'; 
libxml_use_internal_errors(true); 
$dom = new DOMDocument; 
$dom->loadHTML($html); 
echo $dom->getElementsByTagName('a')->item(0)->nodeValue; 

這將讓鏈路書面文本的價值。

演示在這裏:https://eval.in/202356

,或者如果你是使用正則表達式那麼喜歡:

<td.*?class="MID"[^>]*[\s\S]*?<\/td> 

演示在這裏:http://regex101.com/r/aS9pV1/1

+0

謝謝,它的工作。我會確認它 – vmduan 2014-10-07 06:23:02

+0

你能告訴我在哪裏學習正則表達式嗎?非常感謝你。 – vmduan 2014-10-07 06:25:47

+0

@vmduan肯定先生,你可以從http://regexone.com/開始我從那裏開始 – aelor 2014-10-07 06:27:10

0
(<td(?=.*?class="MID")[^>]*>(?:(?!<\/td>).)*<\/td>) 

試試這個。加入標誌gs。參見demo。

http://regex101.com/r/mM8xF8/2

+0

你可以添加class =「MID」到你的正則表達式,請 – vmduan 2014-10-07 06:16:03

+0

是的,我只想要class =「MID」 – vmduan 2014-10-07 06:18:47

+0

@vmduan現在嘗試 – vks 2014-10-07 06:21:26