gpt4 book ai didi

regex - Haskell Posix 中的多行匹配

转载 作者:行者123 更新时间:2023-12-04 23:11:03 25 4
gpt4 key购买 nike

我似乎找不到关于 haskell 的 POSIX 实现的像样的文档。
特别是模块 Text.Regex.Posix .

谁能指出我在字符串上使用多行匹配的正确方向?

好奇的片段:

> extractToken body = body =~ "<textarea[^>]*id=\"wpTextbox1\"[^>]*>(.*)</textarea>" :: String

我正在尝试提取维基百科页面的来源,但是当涉及多行时,这种方法显然会失败。

最佳答案

您可能需要 import Text.Regex.Base.RegexLike访问 makeRegexOpts和 friend 。

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

好吧,因为 Text.Regex.PosixdefaultCompOpt = compExtended + compNewline , 这等效于
extractToken body = match regex body where
regex = makeRegexOpts compExtended defaultExecOpt
"<textarea[^>]*id=\"wpTextbox1\"[^>]*>(.*)</textarea>"

要仅取出第一组,请使用 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>"

关于regex - Haskell Posix 中的多行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1028764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com