<div dir="ltr">I think specific formats can be parsed with attoparsec (Data.Attoparsec.Text):<div><br></div><div>p = do </div><div>   year <- yearP</div><div>   char '/'</div><div>   month <- monthP</div><div>   char '/'</div><div>   ....</div><div>   return (year, month, ...)</div><div><br></div><div>You may also use cassava to parse csv-like files, or Frames for type-safe parsing. With Frames you may custom readers ( <a href="http://acowley.github.io/Frames/#orgfa57664">http://acowley.github.io/Frames/#orgfa57664</a> ) with complex pattern-matching, this will require typing skills though.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ср, 17 апр. 2019 г. в 12:30, Magicloud Magiclouds <<a href="mailto:magicloud.magiclouds@gmail.com">magicloud.magiclouds@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I saw this function in some web tools, pretty useful when parsing log<br>
or so. So I wonder if Haskell has similar libs already.<br>
<br>
Sample:<br>
<br>
Input line: "2019/04/17 17:27 User magicloud runs command ls."<br>
<br>
Pattern: "${year}/${month}/${day} ${hour}:${minute} User ${username}<br>
runs command ${command}."<br>
<br>
Output: toList [ ("year", "2019"), ("month", "04") , etc ]<br>
<br>
--<br>
竹密岂妨流水过<br>
山高哪阻野云飞<br>
<br>
And for G+, please use magiclouds#<a href="http://gmail.com" rel="noreferrer" target="_blank">gmail.com</a>.<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><span style="font-family:arial;font-size:small">Sincerely, Stanislav Chernichkin.</span><br></div></div>