Lua:
正規表現の使用
方法
LuaはPerlやPythonといった言語のようにネイティブに正規表現をサポートしていません。代わりに、多くの一般的な正規表現の使用例をカバーするパターンマッチング機能を提供しています。しかし、完全な正規表現サポートには、lrexlib
のようなサードパーティ製のライブラリを使用できます。
Luaにおける基本的なパターンマッチング:
Luaはシンプルな置換や検索に使用できる強力なパターンマッチングシステムを提供しています:
-- シンプルな検索
local str = "Hello, World!"
if string.find(str, "World") then
print("マッチが見つかりました!")
end
-- 出力: マッチが見つかりました!
-- シンプルな置換
local s = string.gsub("Lua は素晴らしい!", "素晴らしい", "素晴らしくすばらしい")
print(s)
-- 出力: Lua は素晴らしくすばらしい!
文字列の部分をキャプチャする:
パターンにマッチした文字列の部分をキャプチャすることができます:
local date = "今日は 17/05/2023です。"
local d, m, y = string.match(date, "(%d+)/(%d+)/(%d+)")
print("日:", d, "月:", m, "年:", y)
-- 出力: 日: 17 月: 05 年: 2023
lrexlib
を使って正規表現を使用する:
実際の正規表現を使用するには、lrexlib
をインストールして使用できます。それをインストールしていると仮定します(luarocks install lrexlib-pcre
)、より複雑なパターンマッチングを行うことができます:
local rex = require 'rex_pcre'
local text = "スペインの雨は主に平野に降ります。"
local regex = "\\bS\\w+"
local count, err = rex.gsub(text, regex, function(w)
return w:upper()
end)
if err then
print("エラー:", err)
else
print("変更されたテキスト:", text)
print("置換された回数:", count)
end
-- 例の出力: 変更されたテキスト: スペインの雨は主に平野に降ります。
-- 置換された回数: 3
上記の例は、Lua自体のパターンマッチングシステム内での基本的な使用方法と、lrexlib
を介して正規表現の力を利用する方法を示しています。シンプルな文字列操作を実行する場合も、正規表現の全ての柔軟性を必要とする場合も、強力なライブラリと組み合わせたLuaは、あなたのニーズに応えることができます。