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