fork download
  1. import Text.ParserCombinators.Parsec
  2. import Data.Either
  3.  
  4. theParser :: Parser String -> Parser [ String ]
  5. theParser p = let
  6. skipPar = manyTill anyChar
  7. ( ( lookAhead p ) <|> ( mempty <* eof ) )
  8. in skipPar *> ( many $ p <> skipPar )
  9.  
  10. f str = fromRight []
  11. $ parse ( theParser $ string "あいう" ) "" str
  12.  
  13. main = mapM_ putStrLn $ f "abあいう1あいう23あいうxyz"
Success #stdin #stdout 0s 4816KB
stdin
Standard input is empty
stdout
あいう1
あいう23
あいうxyz