perl substr() 関数の例、substr() 関数のコード例 - 文字列内のオフセット OFFSET から始まる EXPR の部分文字列を返します。
文法:
substr EXPR、OFFSET、LEN、REPLACEMENT
substr EXPR、OFFSET、LEN
substr EXPR、OFFSET
定義と使用法
文字列内のオフセット OFFSET から始まる EXPR の部分文字列を返します。 OFFSET が負の場合、文字列は多くの文字で始まり、最後に続きます。 LEN が指定されている場合は、バイト数、または文字列の末尾までのすべてのバイト (指定されていない場合) を返します。 len が負の数の場合、文字列を終了する文字数。
REPLACEMENTで指定した部分文字列を置換する場合は、REPLACEMENTの文字列を置換します。
文字列の末尾を超える部分文字列を指定した場合は、元の文字列の唯一の有効な要素を返します。
戻り値
文字列
例
次の例を試してください:
#!/usr/bin/perl -w #by www.yiibai.com $temp = substr("okay", ); print "Substring valuye is $temp\n"; $temp = substr("okay", ,); print "Substring valuye is $temp\n";
これにより、次の結果が生成されます:
部分文字列値は ay です
部分文字列値は ka
Perl substr 関数応用の解析例
この記事では、Perl の substr 関数の応用に焦点を当てます。Perl プログラムを作成する際、文字列の一部をインターセプトする必要がある場合、通常はこの機能を実現するために substr 関数を使用します。
Perl substr 関数アプリケーション
Perl プログラムを作成するとき、文字列の内容の一部をインターセプトする必要がある場合、通常、この機能を実現するために Perl の substr 関数を使用します。
$str="testtest"; printsubstr($str,0,5); $str="testtest"; printsubstr($str,0,5);
上記のプログラムを実行し、結果「testt」を出力します。これが希望する結果です。以下のプログラムをもう一度見てください:
$str="测试文本"; printsubstr($str,0,1); $str="测试文本"; printsubstr($str,0,1);
この時点では「?」が出力されますが、これは明らかに私たちが望んでいる結果ではありません。 Perlでは外部から入力された文字列(プログラム内で書かれた文字列も含む)はすべてバイトとして扱われるため、「printsubstr($str,0,1);」という文は単に「テストテキスト」を意味します。ただし、1 バイトでは漢字を表現できないため、「?」が出力されます。
上記のプログラムで正しい結果を出力したい場合は、decode 関数を使用して「テスト テキスト」を Perl 内部文字列に変換し、Perl が「テスト テキスト」を文字列として扱えるようにする必要があります。 use "substr( $str,0,1);" インターセプトされるのはバイトではなく、漢字です。
Perl の substr 関数の使用法を見てみましょう:
コマンド: substr
構文: substr($string,offset,length)
offset は開始文字の位置を表し、length は引用符で囲まれた文字列の長さを表します。length を省略した場合は、文字列の開始値から最後の文字までの長さを表します。そして
offset が負の値の場合、文字列の右側から指定されます。
例:
$s=substr("perl5",2,2);#这时$s="rl"; $s=substr("perl5",2);#这时$s="rl5"; $s=substr("perl5",-2,2);#这时$s="er";