任何人都知道如何使用Text.Regex作为单词边界吗?

时间:2019-03-07 21:34:45

标签: haskell

我现在使用 Text.Regex 包。

我尝试将subRegex用于单词边界

let r = mkRegex "\\bdog\\b"

subRegex r "mydog dog" "(\\0)"

输出=>“ mydog狗”

我还尝试以下操作:

let r = mkRegex "\\b(dog)\\b"

subRegex r "mydog dog" "(\\0)"

输出=>“ mydog狗”

我尝试更改“ mydog dog” =>“ mydog(dog)”

1 个答案:

答案 0 :(得分:1)

Text.Regex包中的

regex-compat使用的是POSIX兼容的正则表达式,而不是PCRE表达式。

在POSIX正则表达式中,左侧单词边界为\<,右侧单词边界为\>

ghci> let r = mkRegex "\\<dog\\>"
ghci> subRegex r "mydog dog" "(\\0)"
"mydog (dog)"