文字列の検索と置き換え

変数に格納されている文字列の中から特定の文字列を検索します。
また文字列の置き換えを行います。
この辺りの処理は perl の最も得意とする所です。

プログラム-1

  1. エディタで search1.pl を作成して下さい。
    print grep(/亜/,"明子","亜紀子","晶子","亜希子","晃子");
    print "\n";
    print grep(!/亜/,"明子\n","亜紀子\n","晶子\n","亜希子\n","晃子\n");
    
  2. 【実行画面】
    C:\DATA\Perl>perl Search1.pl
    亜紀子亜希子
    明子
    晶子
    晃子
    
  3. /亜/ が含まれる文字列を表示します。
    "亜紀子", "亜希子" が選ばれています。
    print grep(/亜/,"明子","亜紀子","晶子","亜希子","晃子");
  4. /亜/ が含まれない文字列を表示します。
    "明子\n", "晶子\n", "晃子\n" が選ばれています。
    print grep(!/亜/,"明子\n","亜紀子\n","晶子\n","亜希子\n","晃子\n");

プログラム-2

  1. エディタで search2.pl を作成して下さい。
    $string= "abcNHKabcNHKabcNHK\n";
    $string=~ s/N/X/g;
    print "$string";
    
    $string=~ s/abc/tbs/g;
    print "$string";
    
    $string=~ s/b/+++++/g;
    print "$string";
    
  2. 【実行画面】
    C:\DATA\Perl>perl Search2.pl
    abcXHKabcXHKabcXHK
    tbsXHKtbsXHKtbsXHK
    t+++++sXHKt+++++sXHKt+++++sXHK
    
  3. N を X に置き換えて表示します。
    $string= "abcNHKabcNHKabcNHK\n";
    $string=~ s/N/X/g;
    print "$string";
  4. abc を tbs に置き換えて表示します。
    $string= "abcNHKabcNHKabcNHK\n";
    $string=~ s/abc/tbs/g;
    print "$string";
  5. 文字列の長さが違っても置き換えることができます。
    b を +++++ に置き換えて表示します。
    $string= "abcNHKabcNHKabcNHK\n";
    $string=~ s/b/+++++/g;
    print "$string";

プログラム-3

  1. エディタで match.pl を作成して下さい。
    STDIN から入力した文字列を調べて XYZ が含まれていないときだけ表示します。
    入力した文字列は、デフォルト変数($_)に格納されています。
    「eq 0」は見つからなかったときで、「ne 0」にすると見つかったときになります。
    while(($_= <>) ne "\n")
    {   if (grep(/XYZ/,$_) eq 0)  {  print;  }
    } 
    
  2. 【実行画面】
    C:\DATA\Perl>perl match.pl
    abcdefg
    abcdefg
    XYZ
    abcxyzdef
    abcxyzdef
    abcXYZdef
    
  3. 大文字の XYZ がタイプされた行は表示されていません。
    プログラムは Enter キーだけをタイプすると終了します。
    キーボードからの入力は キーボードから文字列を入力 を参照して下さい。

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(Perl)