せっかく、エイプリルフールなので、B.G-STATIONを更新しました。
Documentからこのブログに飛ぶだけですけどね。
他にもいろいろ動かしていきたいですが、ひとまずはこれだけ。
せっかく、エイプリルフールなので、B.G-STATIONを更新しました。
Documentからこのブログに飛ぶだけですけどね。
他にもいろいろ動かしていきたいですが、ひとまずはこれだけ。
パターンマッチは以前もやっているが、実は、"//"というのは"m//"の省略形らしい。
パターンマッチ演算子(m//) - 正規表現の基本 - Perlにおける正規表現
ここだとパターンマッチ演算子と言っているけど、"m//"は組み込み関数の1つと書いてあるところもあって、どっちが正解なんだか・・・。
今回は配列でやってみた。
$ vi m.pl $ perl m.pl ABC AbC $
こんな風に取り出せるのは変わらない。
Sample/perl/m/m/src/m at master · bg1bgst333/Sample · GitHub
rindexは、指定された文字列の中で、指定された部分文字列があった場合に、最後に見つかった場所の位置(前から数えて)を返す。
rindex関数 - 文字列 - Perl関数のリファレンス
3番目の検索終了位置がわかりにくいけど、
として実行すると、
$ vi rindex.pl $ perl rindex.pl 13 13 8 2 -1 $
$i1は、0から数えて13番目に、最後の"ABC"。
$i2は、13番目から始まる探索で終了なので、最後に見つかるカタチになる。
$i3は、そもそも12番目で探索を終了してしまうので、13番目より前の、8番目の"ABC"を最後とする。
$i4は、ここからは対象文字列を"CD"とし、複数は無いパターンに変えていて、2番目なら見つかるので2。
$i5は、1番目で終わってしまうので、そうすると見つからなかったということになるので、-1を返す。
Sample/perl/rindex/rindex/src/rindex at master · bg1bgst333/Sample · GitHub
indexは、指定された文字列の中で、指定された部分文字列がどこにあるか、位置を返す。
Perlの組み込み関数 index の翻訳 - perldoc.jp
3番目に渡す探索位置で結果が変わってくる。
指定しない場合は最初から、指定する場合はその位置からになるので、
$ vi index.pl $ perl index.pl 0 6 $
上は最初から見つかるし、下は6番目までみつからない。
Sample/perl/index/index/src/index at master · bg1bgst333/Sample · GitHub
substrは、指定された文字列の中から、指定された位置や長さの部分文字列を抜き出す。
Perlの組み込み関数 substr の翻訳 - perldoc.jp
3つのパターンでやってみる。
これで、
$ vi substr.pl $ perl substr.pl ABCDE CD CDE $
このように抜き出せた。
Sample/perl/substr/substr/src/substr at master · bg1bgst333/Sample · GitHub
lengthは、指定された文字列の長さを返す。
Perlの組み込み関数 length の翻訳 - perldoc.jp
これで、
$ vi length.pl $ perl length.pl 5 $
"ABCDE"の長さは5。
Sample/perl/length/length/src/length at master · bg1bgst333/Sample · GitHub
chopは、指定された文字列の最後の文字を取り除く。
Perlの組み込み関数 chop の翻訳 - perldoc.jp
chompは、末尾が改行なら取り除き、そうでないなら何もしないのに対して、
chopは、条件なく最後の文字を取り除く。
これで、
$ vi chop.pl $ perl chop.pl ABCD ABC $
chompだと何も起きないが、chopだと'D'が取り除かれる。
Sample/perl/chop/chop/src/chop at master · bg1bgst333/Sample · GitHub