Haskell:
正規表現の使用

使い方:

Haskellでは、regex機能は標準ライブラリには含まれておらず、regex-baseのようなサードパーティ製のパッケージと、POSIX正規表現サポート用のregex-posix、Perl互換の正規表現用のregex-pcreなど、互換性のあるバックエンドの使用が必要になります。以下のようにしてこれらのパッケージを使用して正規表現を扱います。

まず、プロジェクトの .cabal ファイルに regex-posixregex-pcre を追加するか、cabalを直接使ってパッケージをインストールすることで、パッケージがインストールされていることを確認します:

cabal install regex-posix

または

cabal install regex-pcre

regex-posix を使う:

import Text.Regex.Posix ((=~))

-- 文字列がパターンにマッチするか確認
isMatch :: String -> String -> Bool
isMatch text pattern = text =~ pattern :: Bool

-- 最初のマッチを見つける
findFirst :: String -> String -> String
findFirst text pattern = text =~ pattern :: String

main :: IO ()
main = do
    print $ isMatch "hello world" "wo"
    -- 出力: True
    print $ findFirst "good morning, good night" "good"
    -- 出力: "good"

regex-pcre を使う:

import Text.Regex.PCRE ((=~))

-- すべてのマッチを見つける
findAll :: String -> String -> [String]
findAll text pattern = text =~ pattern :: [String]

main :: IO ()
main = do
    print $ findAll "test1 test2 test3" "\\btest[0-9]\\b"
    -- 出力: ["test1","test2","test3"]

各ライブラリには特有の点がありますが、regexを適用するために =~ を使用する一般的な方法論は一貫しています。マッチの確認か部分文字列の抽出かにかかわらず、regex-posixregex-pcre のどちらを選ぶかは、主にプロジェクトのニーズと必要な特定のregex機能に依存します。