regex - 在 Haskell 中使用正则表达式进行分词

标签 regex haskell

Haskell 中有几个包可用于使用正则表达式(例如 Text.Regex.Base、Text.Regex.Posix 等)。到目前为止,我见过的大多数软件包都使用我知道的 Regex 的一个子集,我的意思是:我习惯于使用以下 Regex 将句子拆分为单词:

\\w+

到目前为止,我尝试过的几乎所有 Haskell 包都不支持这个(至少前面提到的和 Text.Regex.TDFA 都不支持)。我知道使用 Posix 使用 [[:word:]+] 会产生相同的效果,但我想使用上面提到的变体。

从这里有两个问题:
  • 有什么包可以存档吗?
  • 如果真的有,为什么会有不同的常见用法?
  • 有哪些优点或缺点?
  • 最佳答案

    我会使用亚当的建议或(也许更具可读性)

    > :m +Data.Char
    > :m +Data.List.Split
    > wordsBy (not . isLetter) "Just a simple test."
    ["Just","a","simple","test"]
    

    这里不需要正则表达式。

    关于regex - 在 Haskell 中使用正则表达式进行分词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8416758/

    相关文章:

    haskell - 使用列表理解提取列表中的每个元素

    haskell - 并行树搜索

    Haskell - 一些,很多实现

    python - 从 RLE 模式中删除代码重复,而不求助于 Haskell?

    javascript - 将任何字符串转换为驼峰大小写

    JavaScript RegExp 在每个有效和无效输入中返回 false

    javascript - 转换任意字符串以在 JavaScript 中使用的函数

    regex - 如何编写 nltk 语法来检查但不捕获某些文本

    regex - 将文件中与模式匹配的行替换为空行

    haskell - Haskell 中的绑定(bind)是什么意思?