方法: Luaには文字列を大文字にするための組み込み関数はありませんが、基本的な文字列操作関数を使用してこのタスクを簡単に実行できます。ここに、単一の単語の最初の文字を大文字にする簡単な関数があります:.
(やり方) 文字列の連結はLuaの歴史を通じて基本的な機能であり、Lua 5.1からは..演算子を使って簡単に行われます。文字列は内部的には不変であり、新しい文字列を作るたびにメモリに新しい領域が割り当てられるため、大量の連結操作は性能に影響を与える可能性があります。そのため、table.concat関数は多数の文字列を連結する際の効率的な選択肢となりえます。
..
table.concat
(方法) Luaでは、文字列操作は基本的で必要な作業です。string.lower関数は、Lua 5.0から利用可能で、大文字から小文字への変換が簡単にできます。この関数は、ASCII文字に限定されており、ローカル言語の特殊な大文字には対応していない場合があります。代替案としては、UTF-8対応の外部ライブラリを使用することが挙げられます。内部的には、Luaのstring.lowerはCで書かれた関数を呼び出して実装されており、実行速度が速いです。
string.lower
(やり方) 上のコードでは、%Dを使って非数字を削除しています。
%D
(方法) Luaでサブストリングを抽出するには標準関数 string.sub を使います。以下は使い方です。
string.sub
(方法) Luaでは、文字列の長さはシャープ(#)記号で簡単に求めることができます。古いバージョンではstring.len関数もよく使われていましたが、今では#の方が一般的です。
#
string.len
文字列補間は、Luaではstring.format()関数を使って行います。この関数はC言語のprintf関数の影響を受けており、それに加えLuaの表現力を活かしています。
string.format()
printf
Luaのパターンマッチングは、全体のライブラリをインポートすることなく、regex-liteの体験の迫力を提供します。キャレット(^)とドル記号($)は、それぞれ文字列の開始と終了にマッチします。%pは任意の句読点文字にマッチします。先頭と末尾の句読点を振り払った後、(.*),で他のすべてをキャプチャし、そのキャプチャグループを使用して全体のマッチを"%1"で置換します。
^
$
%p
(.*),
"%1"
(実践方法) Luaではstring.gsub関数を使って簡単にテキスト検索と置換ができます。1993年の登場以来、Luaは拡張性とポータビリティが重視されており、様々な環境で使われています。gsubはグローバル置換の略で、パターンマッチングを優れた機能として提供していますが、正規表現は完全にはサポートしていません。代わりに、Luaのパターンマッチングは限定的ですが、多くの一般的なユースケースには十分です。正規表現が必要な場合、外部ライブラリーを利用することができます。
string.gsub
gsub
方法 LuaはPerlやPythonといった言語のようにネイティブに正規表現をサポートしていません。代わりに、多くの一般的な正規表現の使用例をカバーするパターンマッチング機能を提供しています。しかし、完全な正規表現サポートには、lrexlibのようなサードパーティ製のライブラリを使用できます。
lrexlib