2009-10-15 5 views
0

난 (그냥 예)이 HTML 코드를 가지고 :추출 파일 이름을 사용하여 정규 표현식

Sem vestibulum blandit nostra, nullam imperdiet, pellentesque vel wisi sit fusce purus mi, porttitor lorem. Bibendum non phasellus ut ipsum massa sed, interdum per, facilisis facilis luctus fermentum et donec, tristique tristique non.</p> 
<p align="justify"><a class="nemo" href="http://myserver.com/images/blogs/65/emo_by_bebz.jpg"><img style="max-width:256px; max-height:256px" src="http://myserver.com/images/blogs/65/emo_by_bebz_thumb.jpg" alt="" /></a></p> 
<p align="justify">Ante sed pede adipiscing morbi, ut aliquam orci, nunc tempus lectus suspendisse, sem at sit ullamcorper augue. 

그리고 난 모든 <a class="nemo" ... </a> 폭이 교체하려면 : 자바 스크립트를 사용하여 {이미지 SRC = emo_by_bebz_thumb.jpg}을 그리고 정기적 인 표현. 출발점으로 나는이 정규식이 : 작동

<a class=\"nemo\"[^>]*>(.*?)src="(.*?)"[^>]*></a> 

을하지만, $ 2는 나에게 단지 전체 이미지 경로를 제공하고 난 단지 파일 이름을합니다. 어떤 아이디어? 사전에

덕분에,

이 정규식 사용하는 경우는 $ 3를 얻을해야
+0

왜 당신이 PHP를이 태그 않았다

다음 코드는 자신의 (많이 당신을 위해 작동하도록이 실종 아니에요)인가? –

+0

아마 그게 그가 문자열을 제거하고 PHP 기능과 원시 RegExp 솔루션을 사용하는 솔루션을 열어두고 있기 때문입니다. – MattC

답변

2

:

<a class=\"nemo\"[^>]*>(.*?)src="(.*)\/(.*?)"[^>]*></a> 
0

이 솔루션은 매우 간단합니다 : 즉 (다음 명령하여 정규식에 추가/의사를 코드),

3

실제 파서를 사용하는 것에 대해 언급 할만한 것이 있습니까? 정규직은 그러한 직업에 대해 피해야합니다.

여기에 libxmlDOMDocument을 사용하는 좋은 방법은 다음과 같습니다. Extracting data from HTML, Kore Nordmann 작성.

<?php 
$oldSetting = libxml_use_internal_errors(true); 
libxml_clear_errors(); 

$html = new DOMDocument(); 
$html->loadHtmlFile('http://kore-nordmann.de/blog.html'); 
$xpath = new DOMXPath($html); 

$links = $xpath->query('//a'); 
foreach ($links as $link) 
{ 
    echo $link->getAttribute('href'), "\n"; 
} 

libxml_clear_errors(); 
libxml_use_internal_errors($oldSetting); 
?> 
+2

+1 정말 최고의 솔루션이므로 +1 –