Memoize

BasicWerk   EC Support   Technique   Facebook  

20141121225448_Perl_qr

Perl_qr

 

 

正規表現の合成。

 

サンプル

sample.html
 
このページは <a href="http://basicwerk.com/memoize/" target="_blank">basicwerk.com/memoize/</a>
 
Archives:
<a href="http://basicwerk.com/memoize/20141121222812_Perl_File_Find_total_size.html" target="_blank">Perl_File_Find_total_size</a>
<a href="http://basicwerk.com/memoize/20141121120907_Perl_no_name_sub.html" target="_blank">Perl_no_name_sub</a>
 
<a href="http://basicwerk.com/" target="_blank">BasicWerk</a> <a href="http://basicwerk.com/blog/" target="_blank">Old Blog</a>
 
Thanks.
 

 

a タグ部分をマッチさせて、リンクが貼られている文字列部分を抜き出す。

qr.pl
 
#! /usr/bin/perl
use warnings;
use strict;
 
my $a_open = qr{<a[^>]+?>};
my $link_word = qr{(.+?)};
my $a_close = qr{</a>};
# 合体!
my $regex = qr/${a_open}${link_word}${a_close}/;
 
while (<>){
    my $line = $_;
    chomp $line;
    # 一行に複数リンクがある場合に対応するため
    # while + g フラグ
    while ($line =~ m/$regex/ig){
        print "$1\n";
    }
}
 

 

 
% qr.pl sample.html
basicwerk.com/memoize/
Perl_File_Find_total_size
Perl_no_name_sub
BasicWerk
Old Blog
 

 


© Shin Nakamura/BasicWerk 2014