2014-10-07 4 views
-1

У меня есть строка, которая является html-кодом, и я хочу получить какой-то тэг из этого html. Тег, подобный ниже:Как строка regex в php

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

Как я могу получить теги, используя регулярное выражение?

+0

Никто не может понять. –

+0

@vks Можете ли вы добавить класс = "MID" в ваше регулярное выражение, пожалуйста, – vmduan

+0

Вы хотите b совместить весь тег? –

ответ

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

+0

Можете ли вы рассказать мне, где изучать регулярное выражение? Большое спасибо. – vmduan

+0

@vmduan уверен, сэр, вы можете начать с http://regexone.com/ Я начал с этого времени – aelor

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

Попробуйте this.Add флаги g и s .Увидь демо.

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

+0

Можете ли вы добавить класс = "MID" в свое регулярное выражение, пожалуйста, – vmduan

+0

да, я хочу только класс = "MID" – vmduan

+0

@vmduan попробуйте сейчас – vks