24
24. ファイル参照の抽出
記事から参照されているメディアファイルをすべて抜き出せ.
メディアファイルというのが何を指しているのかわからなかったが、
ファイル参照の抽出というタイトルから、File:を抜き出すことにした。
中身を見ていると、日本語のファイルでも良さそうだったが、面倒だったためFileのみとした。
import Data.Aeson as A import Control.Applicative import System.Environment import Data.Maybe import Data.ByteString.Lazy.UTF8 as B import GHC.Generics import Text.Regex.Posix import Prelude as P import GHC.IO.Encoding data Article = Article { text :: String, title :: String } deriving (Eq, Show, Generic) instance FromJSON Article main = do setLocaleEncoding utf8 filename <- head <$> getArgs body <- fromString <$> readFile filename writeFile "24.out.txt" $ unlines $ map (P.drop 5) $ filter (\x -> P.length x /= 0 ) $ concatMap concat $ map f $ map (text . fromJust . A.decode) $ B.lines $ body where f = ((=~ ("File:[^]|]*" :: String)) :: String -> [[String]])
[^]|]と[^|]]で異なる解釈となることが勉強になった。