Perl 文字列の位置を取得する(index/rindex)

Perlの文字列の位置を取得するサンプルです。

確認環境
・Perl 5.26.3

目次

indexメソッド

index (検索する文字列, 検索する文字列, 検索開始位置);
  • 文字列の最初の文字から右に検索して引数に指定した文字列が出現した位置を返します。
  • 最初の1文字目の位置は0です。
  • 該当の文字がなかったときは-1を返します。
  • 3つめの引数は検索を開始する位置です。
  • 以下はPerl公式の日本語翻訳サイトのindexメソッドのリンクです。
    http://perldoc.jp/func/index

文字列の位置を取得する

文字列の位置を取得するサンプルです。
文字列を左(先頭の文字)から検索します。

#! /usr/bin/perl
use strict;
use warnings;
use utf8;

my $a = "あいうabcあいう";

print index($a,'b'); # 4

print index($a,'abc'); # 3

print index($a,'あいう'); # 0

print index($a,'あいえ'); # -1

8,10行目は、指定した文字列が見つかった位置を返しています。
12行目は、文字列を左から見て最初に出現する"あいう"の位置を返しています。
14行目は、指定した文字がないので-1を返します。

検索開始位置を指定する

検索開始位置を指定するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;
use utf8;

my $a = "あいうえお";

print index($a,'う',2); # 2

print index($a,'う',3); # -1

8行目の引数は2なので対象の文字列は(うえお)です。引数の文字列(う)が見つかった位置を返しています。
10行目の引数は3なので対象の文字列は(えお)です。引数の文字列(う)が見つからないので-1を返します。

 

rindexメソッド

rndex (検索する文字列, 検索する文字列, 検索開始位置);
  • 文字列の最後の文字から左に検索して引数に指定した文字列が出現した位置を返します。
  • 最初の1文字目の位置は0です。
  • 該当の文字がなかったときは-1を返します。
  • 2つめの引数は検索を開始する位置です。
  • 以下はPerl公式の日本語翻訳サイトのrindexメソッドのリンクです。
    http://perldoc.jp/func/rindex

文字列の位置を取得する

文字列の位置を取得するサンプルです。
文字列を右(最後の文字)から検索します。

#! /usr/bin/perl
use strict;
use warnings;
use utf8;

my $a = "あいうabcあいう";

print rindex($a,'b'); # 4

print rindex($a,'abc'); # 3

print rindex($a,'あいう'); # 6

print rindex($a,'あいえ'); # -1

8,10行目は、引数の文字列が見つかった位置を返しています。
12行目は、文字列を右から見て最初に出現する"あいう"の位置を返しています。
14行目は、引数の文字列が見つからないので-1を返します。

検索開始位置を指定する

検索開始位置を指定するサンプルです。

#! /usr/bin/perl
use strict;
use warnings;
use utf8;

my $a = "あいうabcあいう";

print rindex($a,'う',4); # 2

print rindex($a,'a',2); # -1

8行目の引数は4なので対象の文字列は(あいうab)です。引数の文字列(う)が見つかった位置を返しています。
10行目の引数は2なので対象の文字列は(あいう)です。引数の文字列が見つからないので-1を返します。

関連の記事

Perl if文のサンプル
Perl while文とdo…while文のサンプル
Perl for文とlastとnextのサンプル
Perl 計算のサンプル(演算/代入演算子/インクリメント/デクリメント)

△上に戻る