Pattern Match

last-modified: 12th/June/'01;
since: 1st/June/2001;

Perl $B$OJ8;zNs=hM}$KE,$7$?8@8l$G$9!#A0@a$G@55,I=8=$r>R2p$7$?$N$G!"K\@a$G$OJ8;zNs$r8!:w!"CV49!"JQ49$9$k%9%/%j%W%H$r>R2p$7$^$9!#(B

$B%Q%?!<%s%^%C%A(B

$BJ8;zNs(B string $B$K@55,I=8=$K$h$k%Q%?!<%s(B pattern $B$,%^%C%A$9$k$+$I$&$+D4$Y$k$K$O!"

string =~ /pattern/

input.pl $B$G>R2p$7$^$7$?!#K\@a$G$O2~$a$F>R2p$7$^$9!#(B

$B

$B@55,I=8=$NN}=,$K$4MxMQ$/$@$5$$!#(B

regexp.pl>>

 1:
 2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
10:
11:
12:
13:
14:
15:
16:
17:
#!/usr/bin/perl
#$B>e$N9T$G$O!"(B Perl $B$N%Q%9$r5-=R$7$F$/$@$5$$!#(B
while(1) {
  print "Regular Expression (x to exit): ";
  chomp($pattern = <STDIN>);
  last if ($pattern eq 'x');
  while(1) {
    print "Matched line (x to exit):";
    chomp($line = <STDIN>);
    last if ($line eq 'x');
    if ($line =~ /$pattern/) {
      print "Matched string is \"$&\"\n";
    } else {
      print "failed\n";
    }
  }
}

[$B@bL@(B]

$B

% perl regexp.pl
Regular Expression (x to exit): $B;~(B.*$BJ,(B
Matched line (x to exit):$B:#F|$O(B9$B;~(B15$BJ,$+$i?);v$NLsB+$,F~$C$F$$$k!#(B
Matched string is "$B;~(B15$BJ,(B"
Matched line (x to exit):$BL@F|$O(B11$B;~(B30$BJ,$+$i%<%_$,$"$k!#(B
Matched string is "$B;~(B30$BJ,(B"
Matched line (x to exit):x
% 

$B6h@Z$jJ8;z$NJQ99(B

$B@55,I=8=Cf$G$O!"6h@Z$jJ8;z$b%(%9%1!<%W$9$kI,MW$,$"$j$^$9!#!V(B http://www. $B!W$K%^%C%A$5$;$k$K$O!"

$a =~ /http:\/\/www\./

$B%(%9%1!<%W2s?t$r8:$i$9$?$a$K!"@55,I=8=$r6h@Z$k5-9f$rJQ99$9$k$3$H$,$G$-$^$9!#1Q?t;z$H%"%s%@!<%9%3%"!J(B _ $B!K0J30$NG$0U$N5-9f$KJQ$($i$l$^$9!#(B

$a =~ m#$B@55,I=8=(B#
$a =~ m{$B@55,I=8=(B}
$a =~ m!$B@55,I=8=(B!
$a =~ m+$B@55,I=8=(B+
$a =~ m*$B@55,I=8=(B*

$BC"$7!"6h@Z$jJ8;z$K:NMQ$7$?5-9f$O%a%?J8;z$K$J$j$^$9$+$i!"@55,I=8=Cf$G$O%(%9%1!<%W$9$kI,MW$,$"$j$^$9!#begin{document $B!W$r4^$`$+$I$&$+H=Dj$7$^$9!#(B

$a =~ m{begin\{document}

/$B@55,I=8=(B/ $B$O!"(B m/$B@55,I=8=(B/ $B$N>JN,7A$G$9!#6h@Z$j;R$,%9%i%C%7%e(B / $B$K8B$j!"(B m $B$r>JN,$G$-$^$9!#(B

$B%*%W%7%g%s(B

$B%Q%?!<%s%^%C%A$K$O%*%W%7%g%s$r$D$1$k$3$H$,$G$-$^$9!#$3$3$G$O;0$D$@$1>R2p$7$^$9!#(B

/$B@55,I=8=(B/m
/$B@55,I=8=(B/s
/$B@55,I=8=(B/i

$B>e$+$i=gHV$K!"!VCV49BP>]J8;zNs$N2~9TJ8;z$r2~9T$H$7$F07$&!W!"!VCV49BP>H$NJ8;zNs$N2~9TJ8;z$rC1$J$kJ8;z$H$7$F07$&!W!"!VBgJ8;z>.J8;z$NL5;k!W$G$9!#(B

[$B%Q%?!<%s%^%C%A$N%*%W%7%g%s$NMxMQNc(B]
$a = abc def\nghi jkl$BNcJ8(B$B2~9TJ8;z(B \n $B$,4^$^$l$k!#(B
$a =~ /def$/$B56(B$B9TKv$,(B def$B!#(B
$a =~ /def$/m$B??(B
$a =~ /a.*l/$B56(Ba $B$H(B l $B$N4V$KG$0U$NJ8;zNs!#(B
$a =~ /a.*l/s$B??(B
$a =~ /ABC/$B56(B$BJ8;zNs(B ABC$B!#(B
$a =~ /ABC/i$B??(B
$a =~ /A*.L/mi$B??(B

$BCV49(B

m/$B@55,I=8=(B/ $B$G$OJ8;zNs$r8!:w$7$F$$$^$7$?!#R2p$7$^$9!#(B

$variable =~ s/pattern/replace/

$BJ8;zNs(B $variable $B$+$i(B pattern $B$K0lCW$9$kItJ,$rC5$7=P$7!"(B replace $B$KCV49$7$^$9!#(B

$BJQ?t$+$i%Q%?!<%s$rC5$7$FCV49$7$?7k2L$,!"85$NJQ?t$KBeF~$5$l$J$*$7$^$9!#La$jCM$O!"CV492s?t$G$9!#(B

replace.pl>>

while(1) {
  print "$B$4<+M3$K$I$&$>!*(B:";
  chomp ($line = <STDIN>);
  last if $line eq '';
  $line =~ s/$B$@(B|$B$G$9(B/$B$8$c$J$$(B/;
  $line =~ s/$B;d(B/$B$"$J$?(B/;
  print "-> $line\n";
}

$B

% perl repl.pl
$B$4<+M3$K$I$&$>!*(B:$B;d$OF|K\?M$G$9!#(B
-> $B$"$J$?$OF|K\?M$8$c$J$$!#(B
$B$4<+M3$K$I$&$>!*(B:$B;d$OCK$@!#(B
-> $B$"$J$?$OCK$8$c$J$$!#(B
$B$4<+M3$K$I$&$>!*(B:$B$"$J$?$O%"%a%j%+?M$@!#(B
-> $B$"$J$?$O%"%a%j%+?M$8$c$J$$!#(B
$B$4<+M3$K$I$&$>!*(B:$B;d$OF|K\?M$G!";d$OCK$G$9!#(B
-> $B$"$J$?$OF|K\?M$G!";d$OCK$8$c$J$$!#(B
$B$4<+M3$K$I$&$>!*(B:
% 

$B:G8e$NNc$KCmL\$7$F$/$@$5$$!#%^%C%A$9$kJ8;zNs$,J#?t2sEP>l$9$k$H!":G=i$K%^%C%A$7$?$b$N$7$+CV49$5$l$^$;$s!#$3$l$rA4$FCV49$9$k$K$O!"%*%W%7%g%s$r$D$1$^$9!#(B

$B%*%W%7%g%s(B

$BCV49$N%*%W%7%g%s$O$$$/$D$+MQ0U$5$l$F$$$^$9$,!"$3$3$G$O;M$D$@$1>R2p$7$^$9!#(B

s/$B%Q%?!<%s(B/$BCV49J8;zNs(B/g
s/$B%Q%?!<%s(B/$BCV49J8;zNs(B/m
s/$B%Q%?!<%s(B/$BCV49J8;zNs(B/s
s/$B%Q%?!<%s(B/$BCV49J8;zNs(B/i

$B>e$+$i=gHV$K!"!V%^%C%A$9$k$b$NA4$F$NCV49!W!"!VCV49BP>]J8;zNs$N2~9TJ8;z$r2~9T$H$7$F07$&CV49!W!"!VCV49BP>H$NJ8;zNs$N2~9TJ8;z$rC1$J$kJ8;z$H$7$F07$&CV49!W!"!VBgJ8;z>.J8;z$NL5;k!W$G$9!#(B

[$BJ8;zNsCV49$N%*%W%7%g%s$NMxMQNc(B]
$a = abc def\nabc jkl$B2~9TJ8;z(B \n $B$,4^$^$l$k!#(B
$a =~ s/abc/xyz/xyz def\nabc jkl
$a =~ s/abc/xyz/gxyz def\nxyz jkl
$a =~ s/def$/xyz/mabc xyz\babc jkl
$a =~ s/a.*l/xyz/sxyz
$a =~ s/ABC/xyz/ixyz def\nabc jkl
$a =~ s/ABC/xyz/gixyz def\nxyz jkl

$BO$NI=5-$f$l$NE}0l$d!"%G!<%?$N@07A$,5s$2$i$l$^$9!#(B

[$BJ8;zNsCV49$NMxMQNc(B]
$BJ8Kv$N!V$@!#!W!"!V$G$"$k!#!W$r!V$G$9!#!W$KJQ49(B s/$B$@(B|$B$G$"$k!#(B/$B$G$9!#(B/g
Perl, perl, PERL $B$rA4$F(B Perl $B$KJQ49!#(B s/perl/Perl/ig
0120-444-444 $B$r(B 0120(444)444 $B$KJQ49!#(B s/(\d{4})\-(\d{3})\-(\d{4})/$1\($2\)$3/g

\d $B$OH>3Q?t;z$rI=$9J8;z=89g$G!"(B [0-9] $B$HEy2A$G$9!#(B \d{4} $B$OH>3Q?t;z(B 4 $B2s$N7+$jJV$7$G$9!#(B 2 $B2s0J>e(B 4 $B2s0J2<$N7+$jJV$7$J$i(B \d{2,4} $B$G$9!#EEOCHV9f$O0lHL$K(B \d{2,4}-\d{3,4}-\d{4} $B$GI=8=$G$-$^$9!#(B

$1, $2, $3,... $B$O!"%Q%?!<%s%^%C%A$7$?%0%k!<%W$,=g$KBeF~$5$l$F$$$kFC$B8eJ};2>HJQ?t(B$B$H8F$S$^$9!#$3$NJQ?t$rMxMQ$7$?Nc$r>R2p$7$F$*$-$^$9!#(B

[$B8eJ};2>HJQ?t$NMxMQNc(B]
s/($B?{0f(B)($B!J3t!K(B|$B3t<02q$B?{0f3t<02q$B!"(B$B?{0f!J3t!K(B -> $B!J3t!K?{0f(B
s/(\d+)$B1_(B/\\$1\-/g500$B1_(B$B!"(B15000$B1_(B $B$J$I(B -> \500-, \15000- $B$J$I(B
s/<(br|hr|img|link|input|col|base|meta|area|param)(.*?)>/<$1$2 \/>/g$B6uMWAG$N=*C<$r(B ">" -> " />" $B$KCV49(B
s/<(\/)?([\w]+)/<$1\L$2/g$BMWAGL>$r>.J8;z$K$9$k!#(B \L $B$O(B \E $B$^$G$r>.J8;z$K$9$k$,!":#$O;XDj$5$l$F$$$J$$$N$G!"(B $2 ([\w]+) $BA4$F$r>.J8;z$K$9$k!#(B\w $B$O1Q?t;z$G(B [0-9A-Za-z_] $B$HEy2A!#(B

\ $B$H(B - $B$rI=8=$9$k$?$a$K$O%(%9%1!<%W$9$kI,MW$,$"$j!"$=$l$>$l(B \\, \- $B$HI=8=$7$^$7$?!#(B

$B6h@Z$jJ8;z$NJQ99(B

$BCV49$G$b6h@Z$jJ8;z$OJQ99$G$-$^$9!#(B

$a =~ s!$B%Q%?!<%s(B!$BCV49J8;zNs(B!
$a =~ s#$B%Q%?!<%s(B#$BCV49J8;zNs(B#
$a =~ s{$B%Q%?!<%s(B}{$BCV49J8;zNs(B}

$BJQ49(B

$B%Q%?!<%s%^%C%A(B m/.../$B!"CV49(B s/.../.../ $B$r>R2p$7$^$7$?!#:G8e$K!"JQ49(B tr/.../.../ $B$r>R2p$7$^$9!#(B

$BCV49$G$O!"J8;zNs$rJL$NJ8;zNs$KCV49$7$F$$$^$7$?!#JQ49$G$O!"J8;z$rJL$NJ8;z$KJQ49$7$^$9!#(B

$variable =~ tr/string/replace/

$BJQ?t$+$i(B string $B$K4^$^$l$kA4$F$NJ8;z$,!"(B replace $B$NCf$+$i=gHV$,BP1~$9$kJ8;z$KJQ49$5$l$^$9!#(B

transfer.pl>>

$a = abcdefg;
print "$a ";
$a =~ tr/d-g/1-4/;
print "-> $a\n";

$B

% perl transfer.pl
abcdefg -> abc1234
%

tr/$BJ8;z=89g(B/$BJQ49J8;z=89g(B/ $B$K$*$$$F!"!VJ8;z=89g!W$H!VJQ49J8;z=89g!W$N8D?t$,BP1~$7$J$$>l9g$O!"!VJQ49J8;z=89g$N:G8e$NJ8;z!W$,7+$jJV$5$l$FD"?,$,9g$$$^$9!#=>$C$F!"

$a =~ tr/aogrm/kws/
$a =~ tr/aogrm/kwsss/

$B%*%W%7%g%s(B

$BJ8;zJQ49$K$b%*%W%7%g%s$,$"$j$^$9!#(B

tr/$BJ8;z=89g(B/$BJQ49J8;z=89g(B/d
tr/$BJ8;z=89g(B/$BJQ49J8;z=89g(B/c
tr/$BJ8;z=89g(B/$BJQ49J8;z=89g(B/s

$B>e$+$i=gHV$K!"!VJ8;z=89gCf$NJ8;z$G!"JQ49J8;z=89g$KL5$$J8;z$O>C$9!W!"!VJ8;z=89g$NJd=89g!W!"!VJQ498e$KF1$8J8;z$,=E$J$C$?$H$-$K0lJ8;z$K=L$a$k!W$H1>$&0UL#$G$9!#(B

[$BJ8;zJQ49$N%*%W%7%g%s$NMxMQNc(B]
$a = abcdef
$a =~ tr/abc/xyz/xyzdef
$a =~ tr/abcd/xy/xyyyef
$a =~ tr/abc/b/dbdef
$a =~ tr/abc/z/cabczzz
$a =~ tr/ac/b/sbdef
Copyright: SUGAI, Manabu. Since: 2001
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送