@test1 = ( "AAAAA\n" , "BBBBB\n" , "CCCCC\n" , "DDDDD\n" , "EEEEE\n" );
@test2 = ( "BBBBB\n" , "CCCCC\n" );
上記の2つの変数がある場合、
@test1 =~ m/@test2/;
というのを有効にする方法はあるでしょうか?
正規表現がよく理解できていないまま、このようにやってみたのですが、
うまくいきませんでした。
どなたか、よろしくお願いいたします。
Perl ver5.8.8
ありがとうございます。
$html = "d:\index.html";
open(LOAD,$html) || &error("Open Error : $html");
@test1 = <LOAD>;
close(LOAD);
このようにして、@test1の中にHTMLソースを入れています。
その「 @test1 」の中に「 @test2 」がきちんと入っているかどうかを調べたいのです。
自分が考えた方法は、@test1、@test2をjoinで連結してマッチしてみる、という方法なのですが、、、。
よろしくお願いします。
こういう処理ではいかがでしょうか。
@test1 = ( "AAAAA\n" , "BBBBB\n" , "CCCCC\n" , "DDDDD\n" , "EEEEE\n" );
@test2 = ( "BBBBB\n" , "CCCCC\n" );
@result = ();
foreach $hoo (@test2) {
foreach $bar (@test1) {
push @result, $bar if $hoo =~ m/$bar/;
}
}
@test1 = @result;
print @test1;
ありがとうございます!
あまり、やりたいことを詳しく書いてなかったため、伝わりにくくすいませんでした。
こちらは、置き換えたりする場合に参考にさせていただきたいと思います。
あんまり複雑にしても面倒でしょう。
$test1 = join '', @test1; $test2 = join '', @test2; if ( index ( $test1 , $test2 ) != 1 ) { print "match!\n"; }else{ print "unmatch!\n"; }
でいいんでは。
ありがとうございます!
if ( index ( $test1 , $test2 ) != 1 ) {
の1の部分ですが、、、-1でなくてもいいのでしょうか?
if ( index ( $test1 , $test2 ) != 1 ) {
の1の部分ですが、、、-1でなくてもいいのでしょうか?
あ、失礼 -1 です。
2番の方と自分のはそもそも問題の捉えかたがいます。
質問からはどちらか分からないので、都合のいいほうを選択してください。
はい、ありがとうございます。
こちらで使えそうなソースはb-windさんのほうです。しかし、置き換えたりする場合は2番のかたのソースを参考にしたいと思います。
さっそく組み込んだところ、きちんと動作いたしました。
今後は、まとめて置き換えたりできるようにするつもりです。
ありがとうございました。
ありがとうございます。
$html = "d:\index.html";
open(LOAD,$html) || &error("Open Error : $html");
@test1 = <LOAD>;
close(LOAD);
このようにして、@test1の中にHTMLソースを入れています。
その「 @test1 」の中に「 @test2 」がきちんと入っているかどうかを調べたいのです。
自分が考えた方法は、@test1、@test2をjoinで連結してマッチしてみる、という方法なのですが、、、。
よろしくお願いします。