perlメモ3


文字列の操作


文字列を操作する関数として、substr関数があります。
文字列の取り出し、置き換え、削除、追加などを行うことができます。

構文  
substr ( 文字列, 開始位置, 文字長 )
substr ( 文字列, 開始位置 )
 文字列」から部分文字列を取り出して返す。
 部分文字列は、文字列の先頭から数えて「開始位置」番目から始まる(先頭は 0 から数える)。
「開始位置」が負の場合は、文字列の末尾からマイナス「開始位置」文字だけ戻ったところが部分文字列の先頭になる。
「文字長」を省略すると、文字列の末尾までがすべて返される。  
 

文字列の取り出し
$word = "yaruo";
$cut = substr($word, 0, 4);
print "$cut\n"; 

<出力結果>
yaru  
 

文字列の追加
$word = "aaa";
substr($word, 0, 0) = "bbb";
print "$word\n"; 

<出力結果>
bbbaaa  
 

文字列の置き換え
$word = "yaruo";
substr($word, 0, 4) = "yaranai";
print "$word\n"; 

<出力結果>
yaranaio
 

文字列の削除(先頭から削除)
$word = "aaabbb";
substr($word, 0, 4) = "";
print "$word\n"; 

<出力結果>
bb  
 

文字列の削除(末尾から削除)
$word = "aaabbb";
substr($word, -4, 2) = "";
print "$word\n"; 

<出力結果>
aabb  


正規表現
正規表現は / / 記号で指定検索文字列を囲みます

Perlでは、パターンマッチ演算子として、スラッシュ ( / ) で囲んだ文字列が正規表現であるとされます。
性格上、正規表現は条件式と併用して用いられることが多いようです。この場合次のような構文があります。

構文 意味 
if ( 文字列 =~ /パターン/)  もし「文字列」の中に「パターン」が含まれていれば真 

if ( 文字列 !~ /パターン/)  もし「文字列」の中に「パターン」が含まれていなければ真
                           (パターンマッチすれば偽) 


$word = 'hoge';
# もし$wordの中に og が含まれていれば
if ($word =~ /og/) {
     print "あるのね。\n";
} else {
     print "ないのね。\n";
} 

<出力結果>
あるのね。  
 


また、上記構文(パターンマッチすれば真)の省略形の位置づけとして、
次の構文があります。この場合、対象となる「文字列」は特殊変数 $_ が充てられます。

構文 意味 
if (/パターン/)  もし変数 $_ の中に「パターン」が含まれていれば
(パターンマッチすれば真) 
 


$_ = 'abc';
if (/b/) {
     print "含まれています。\n";
} else {
     print "含まれていません。\n";
} 

<出力結果>
含まれています。  
 




[一つ前に戻る] TOP PAGE
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送