如何以最有效的方式仅替换 Haskell 中 Text 值中第一次出现的“子字符串”(实际上是 Data.Text.Text)?
问问题
797 次
1 回答
12
你可以breakOn
子字符串,
breakOn :: Text -> Text -> (Text, Text)
在模式的第一次出现时将其Text
分成两部分,然后在第二个组件的开头替换子字符串:
replaceOne :: Text -> Text -> Text -> Text
replaceOne pattern substitution text
| T.null back = text -- pattern doesn't occur
| otherwise = T.concat [front, substitution, T.drop (T.length pattern) back]
where
(front, back) = breakOn pattern text
于 2013-02-17T14:29:23.787 回答