Ian*_*ott 4 regex haskell posix functional-programming cabal
我似乎无法在haskell的POSIX实现上找到合适的文档.特别是模块Text.Regex.Posix
.
有人能指出我在字符串上使用多行匹配的正确方向吗?
一个奇怪的片段:
> extractToken body = body =~ "<textarea[^>]*id=\"wpTextbox1\"[^>]*>(.*)</textarea>" :: String
Run Code Online (Sandbox Code Playgroud)
我正在尝试提取维基百科页面的来源,但是当涉及多行时,这种方法显然会失败.
您可能需要import Text.Regex.Base.RegexLike
访问makeRegexOpts
和朋友.
extractToken body = match regex body where
regex = makeRegexOpts (defaultCompOpt - compNewline) defaultExecOpt
"<textarea[^>]*id=\"wpTextbox1\"[^>]*>(.*)</textarea>"
Run Code Online (Sandbox Code Playgroud)
好吧,既然Text.Regex.Posix
的defaultCompOpt = compExtended + compNewline
,即等效工作了作为
extractToken body = match regex body where
regex = makeRegexOpts compExtended defaultExecOpt
"<textarea[^>]*id=\"wpTextbox1\"[^>]*>(.*)</textarea>"
Run Code Online (Sandbox Code Playgroud)
要仅提取第一个组,请使用其中一个实例RegexLike
.一种可能性是
extractToken body = head groups where
(preMatch, inMatch, postMatch, groups) =
match regex body :: (String, String, String, [String])
regex = makeRegexOpts compExtended defaultExecOpt
"<textarea[^>]*id=\"wpTextbox1\"[^>]*>(.*)</textarea>"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1370 次 |
最近记录: |