2011-11-28 2 views
-3

다음을 찾는 방법 div 정규식을 사용하고 있습니까? URL과 이미지 위치는 게시 URL을 기반으로 일관되게 변경되므로 와일드 카드를 사용해야합니다. http://community.autoblogged.com/entries/344640-common-search-and-replace-patternsWordpress/Autoblogged에서 regex를 사용하여이 div를 찾는 방법은 무엇입니까?

<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjumpinblack.com%2F2011%2F11%2F25%2Fdrake-and-rick-ross-you-only-live-once-ep-mixtape-2011-download%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjumpinblack.com%2F2011%2F11%2F25%2Fdrake-and-rick-ross-you-only-live-once-ep-mixtape-2011-download%2F&amp;source=jumpinblack1&amp;style=compact&amp;b=2" height="61" width="50" /><br /> </a> </div> 

내가

<div class="tweetmeme_button" style="float: right; margin-left: 10px;">.*<\/div> 
+0

는 다음이 (펄 HTML 파서를 사용하는 답변이 적용되지 않는 이유입니다) 펄 질문이 아니다. 정규 표현식 질문이 Perl 질문이라고 주장한 경우 -1 ( – preaction

+2

). – tadmc

답변

1

나쁜 생각입니다. 나는 이것을 위해 HTML :: TreeBuilder :: XPath를 사용하고있다. 당신이 사용하고있는 그 워드 프레스 플러그인 인 경우

use strict; 
use warnings; 
use HTML::TreeBuilder::XPath; 
use WWW::Mechanize; 

my $mech = WWW::Mechanize->new(); 
$mech->get("http://www.someURL.com"); 

my $tree = HTML::TreeBuilder::XPath->new_from_content($mech->content());  
my $div = $tree->findnodes('//div[@class="tweetmeme_button"]')->[0]; 
+0

빠른 응답 주셔서 감사합니다 그러나 나는 사용하고있는 소프트웨어 프로그램 때문에 정규 표현식을 사용해야합니다. http://community.autoblogged.com/entries/344640-common-search-and-replace-patterns – user1068544

1

사용하는 HTML 파서를 사용하여 시도 : 내가 사용할 수있는 제한하고 있기 때문에 때문에 내가 사용하고있는 소프트웨어에 정규 표현식을 사용해야합니다

HTML을 파싱합니다.

HTML::TokeParser::Simple 또는 HTML::TreeBuilder::XPath. HTML을 처리하기 위해 정규 표현식을 사용

예컨대 :

#!/usr/bin/env perl 

use strict; 
use warnings; 

use HTML::TokeParser::Simple; 

my $parser = HTML::TokeParser::Simple->new(...); 

while (my $div = $parser->get_tag) { 
    next unless $div->is_start_tag('div'); 
    { 
     no warnings 'uninitialized'; 
     next unless $div->get_attr('class') eq 'tweetmeme_button'; 
     next unless $div->get_attr('style') eq 'float: right; margin-left: 10px;' 
     # now do what you want until the next </div> 
    } 

} 
관련 문제