Haskell noob here。我正在使用regex-tdfa(没有特别的理由)(尝试)匹配多行代码文件(XAML,是的,我知道正则表达式和解析XML以及小马 - 它们会发布)。如何在regex-tdfa正则表达式中控制CompOption“multiline”? (Haskell)
如果我在代码中使用一个简单的regex像
fileContents =~ "<UserControl.Resources>"
我得到的点击我的文件。好极了。
如果我 “升级” 的正则表达式像 “<UserControl.Resources> * </UserControl.Resources>”,然后我得到没有命中。所以,我想我的问题是多线正则表达式,并说服引擎匹配多行。
事情是,我是如此的排名noob我不知道该怎么做。我所知道的是我从了解到的真实世界Haskell和了解你一个Haskell,那些不会谈论正则表达式编译选项。
所以,我可以强制的结果一样
fileContents =~ "<UserControl.Resources>" :: (String, String, String)
但是,这是我所知道的。
如何关闭多行关闭? (我认为它的上,出于某种原因。)
既然你知道它没有任何意义,试图解析使用正则表达式XML,你为什么要这么做它?顺便说一下,用于解析常规语言的最好的Haskell API是'regex-applicative'。 – dfeuer
我是黑客,是为什么。感谢指向正则表达式的指针。请记住:Haskell noob。这是一个用Haskell编写的Perl脚本。我敢肯定,应用的东西是美好的,但我还没有。 – JohnL4
关于应用和单点解析库的好处:它们很容易学习,一旦你学到了一个,它们都看起来很熟悉。最流行和最容易使用的是'attoparsec'。 – dfeuer