Haskell初心者。練習として、マークダウンのパーサーを作成中。
日本語の置換でかなりはまったが、 utf8-string
パッケージでうにゃうにゃしたらいけた。
main.hs
import Text.Regex
import Codec.Binary.UTF8.String
sub :: String -> String -> String -> String
sub subject re replace = decodeString $ subRegex (mkRegex re) (encodeString subject) replace
main :: IO ()
main = do
putStrLn $ sub "- Slackに通知する" "^- (.+)$" "<li>\\1</li>"
% runghc main.hs
<li>Slackに通知する</li>
encodeString
と decodeString
で挟まないと、うまく置換できない。