加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Haskell语言学习笔记(52)正则表达式

发布时间:2020-12-14 06:40:32 所属栏目:百科 来源:网络整理
导读:Text.Regex.PCRE.Heavy $ brew install pcre$ cabal install pcre-heavyInstalled pcre-heavy- 1.0 .0 .2 Prelude :m +Text .Regex .PCRE .Heavy Prelude Text .Regex .PCRE .Heavy Prelude Text .Regex .PCRE .Heavy : set -XQuasiQuotesPrelude Text .Rege

Text.Regex.PCRE.Heavy

$ brew install pcre
$ cabal install pcre-heavy
Installed pcre-heavy-1.0.0.2
Prelude> :m +Text.Regex.PCRE.Heavy
Prelude Text.Regex.PCRE.Heavy>
Prelude Text.Regex.PCRE.Heavy> :set -XQuasiQuotes
Prelude Text.Regex.PCRE.Heavy> :set -XFlexibleContexts
Prelude Text.Regex.PCRE.Heavy> "123-4567-89" =~ [re|d{3}-(d{4})-d{2}|]
True
Prelude Text.Regex.PCRE.Heavy> scan [re|d{3}-(d{4})-d{2}|] "123-4567-89"
[("123-4567-89",["4567"])]
Prelude Text.Regex.PCRE.Heavy> scanRanges [re|d{3}-(d{4})-d{2}|] "123-4567-89"
[((0,11),[(4,8)])]
Prelude Text.Regex.PCRE.Heavy> :set -XScopedTypeVariables
Prelude Text.Regex.PCRE.Heavy> sub [re|d+|] ((s::String) -> reverse s) "123-4567-89"
"321-4567-89"
Prelude Text.Regex.PCRE.Heavy> gsub [re|d+|] ((s::String) -> reverse s) "123-4567-89"
"321-7654-98"
Prelude Text.Regex.PCRE.Heavy> split [re|%(begin|next|end)%|] ("%begin%hello%next%world%end%" :: String)
["","hello","world",""]
  • (=~) :: (ConvertibleStrings SBS a,ConvertibleStrings a SBS) => a -> Regex -> Bool
    (=~) 操作符函数检查字符串是否匹配指定正则表达式。
  • scan :: (ConvertibleStrings SBS a,ConvertibleStrings a SBS) => Regex -> a -> [(a,[a])]
    scan 函数查找并返回字符串中所有出现的指定正则表达式。
  • scanRanges :: (ConvertibleStrings SBS a,ConvertibleStrings a SBS) => Regex -> a -> [((Int,Int),[(Int,Int)])]
    scanRanges 函数查找字符串中所有出现的指定正则表达式,返回出现的所有位置。
  • sub :: (ConvertibleStrings SBS a,ConvertibleStrings a SBS,RegexReplacement r) => Regex -> r -> a -> a
    sub 函数替换字符串中第一次出现的指定正则表达式。
  • gsub :: (ConvertibleStrings SBS a,RegexReplacement r) => Regex -> r -> a -> a
    gsub 函数替换字符串中所有出现的指定正则表达式。
  • split :: (ConvertibleStrings SBS a,ConvertibleStrings a SBS) => Regex -> a -> [a] split 函数使用指定正则表达式分割字符串。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读