Multiline Matching in Haskell Posix

后端 未结 3 1990
深忆病人
深忆病人 2021-01-06 07:09

I can\'t seem to find decent documentation on haskell\'s POSIX implementation. Specifically the module Text.Regex.Posix.

Can anyone point me in the rig

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-06 07:50

    You may need to import Text.Regex.Base.RegexLike for access to makeRegexOpts and friends.

    extractToken body = match regex body where
        regex = makeRegexOpts (defaultCompOpt - compNewline) defaultExecOpt
                  "]*id=\"wpTextbox1\"[^>]*>(.*)"
    

    Well, since Text.Regex.Posix's defaultCompOpt = compExtended + compNewline, that works out equivalently as

    extractToken body = match regex body where
        regex = makeRegexOpts compExtended defaultExecOpt
                  "]*id=\"wpTextbox1\"[^>]*>(.*)"
    

    To pull out just the first group, use one of the other instances of RegexLike. One possibility is

    extractToken body = head groups where
        (preMatch, inMatch, postMatch, groups) =
            match regex body :: (String, String, String, [String])
        regex = makeRegexOpts compExtended defaultExecOpt
                  "]*id=\"wpTextbox1\"[^>]*>(.*)"
    

提交回复
热议问题