parsing - 如何解析文本并提取整数

标签 parsing haskell

我有这个Data.Text

"Check: Find max among: 70, 102, 271, 40"

如何从此文本中提取数字并对它们应用函数?

最佳答案

出于各种美学原因,我喜欢这种方法:

import qualified Data.Text as T
import Data.Text.Read
import Data.Either
import Data.Char
import Data.Text.IO as T

readNums :: T.Text -> [Int]
readNums =
  map fst .                 -- 5. extract the parsed numbers
  snd .  partitionEithers . -- 4. collect only the valid numbers
  map decimal .             -- 3. parse each substring as an number
  filter (not . T.null) .   -- 2. filter out empty strings (not necessary)
  T.split (not . isDigit)   -- 1. split on non-digits

关于parsing - 如何解析文本并提取整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28506961/

相关文章:

performance - 解析整数列表(速度测试需要优化)

Javascript Date.parse 帮助

php - 使用 PHP Simple HTML DOM Parser 查找带有类的 div

haskell - 如何动态加载外部库?

haskell - 如何使用randomRIO生成无限的随机数列表?

haskell - 类型签名缺少附带的绑定(bind)?

parsing - Yacc仍在行业中使用吗?

java - HTML 解析器获取链接文本

haskell - 如何使用 Data.Constraint 来具体化约束?

haskell - 初始化寄存器