F# is an excellent tool for writing parsers. You have a variety of choices:
Active patterns let you define fairly simple parsers that are very readable. I used this approach in my Markdown parser I wrote a chapter about this for an upcoming F# book which is freely available as PDF.
Parser combinators are another options. The idea is that you can build parser from basic building blocks (such as parsing a list separated by a given character etc.). There is an F# implementation called FParsec
FsLex and FsYacc give you the standard tools for writing parsers. There is a new more efficient implementation and also a version in the F# PowerPack which is used by the F# compiler itself.