1. ホーム
  2. スクリプト・コラム
  3. パール

Perl uc,lc,ucfirst,lcfirst 大文字・小文字変換関数群

2022-01-03 17:33:52

大文字と小文字の変換を行います。

機能 uc (uppercase) すべての小文字を大文字に変換します。

関数 lc (小文字) すべての大文字を小文字に変換します。

Perlには4つの組み込み関数クラスがあり、文字や単語の大文字小文字を簡単に変更することができます。関数 uc() は引数をすべて大文字で返し、lc() は引数を小文字で返します。uc()とlc()は、引数が指定されない場合、どちらも$_変数に対して操作されます。
単語の最初の文字の大文字小文字を変更するには、ucfirst() および lcfirst() を使用します。uc()やlc()と同様に、ucfirst()やlcfirst()は引数を指定しない場合、変数$_に対して操作を行います。

これらの4つの関数はいずれも引数を変更せず、単に変更された引数のコピーを返します。ですから、結果を変数に代入するか、表示するか、あるいは他の方法で返された値を使用する必要があります。よくある間違いで、次のようなことをやってしまいます。

$a = 'hello';
uc($a);
print $a;

一見すると、このコードは "HELLO" と表示されると思うかもしれません。しかし、uc() はパラメータを変更しないので、小文字の "hello" が表示されるだけです。期待通りの結果を得るには、次のようなコードを使用します。

$a = 'hello';
$a = uc($a);
print $a; 

また、二重引用符の中の文字列に対して、/Lと/Uのエスケープシーケンスを使用することで、単語の大文字と小文字を変更することができます。次のコードを使用すると、前と同じ結果を得ることができます。

$a = 'hello';
print "/U$a/E"; 

エスケープ文字 /E は、直前のエスケープ文字 (この場合は /U) で始まるものを終了させます。

大文字・小文字の変更は、Perlに内蔵されている大文字・小文字変換機能と、二重引用符で囲まれたエスケープ文字/U、/Lで簡単に行うことができます。

単語の最初の文字を大文字にする

$str =~ s/(\w+)/\u$1/

perlでは、uc,lc, \U,\L を使って変数の大文字・小文字を変更することができます。ここで、uc, \U は変数に含まれるすべての文字を大文字に変換し、対応する lc,\L は変数に含まれるすべての文字を小文字に変換するものです。もし、変数の最初の文字だけを大文字にしたり、最初の文字だけを小文字にしたい場合は、perlが提供している他の2つの関数ucfirstとlcfirstを使えばよいので、以下に具体例を見てみましょう。

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

my $little = "hello";
print "little:$little\n";
my $big = uc($little);
print "big:$big";
$little = lc($big);
print "little:$little\n";
$big = "\U$little";
print "big:$little";
$little = "\l$big";
print "little:$little\n";
$big = ucfirst($little);
print "big:$little\n";
$little = lcfirst($big);
print "little:$big\n";

この上のプログラムは、次のような結果を出力します。

こんにちわ
ハロー
こんにちわ
HELLo
こんにちわ
こんにちは
こんにちわ

今回の記事はこれで終わりです、スクリプトハウス編集部はいくつかの記事をまとめました、今後ともスクリプトハウスをもっと応援してください。