如何以最有效的方式仅替换 Haskell 中 Text 值中第一次出现的“子字符串”(实际上是 Data.Text.Text)?
最佳答案
您可以 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
关于Haskell:使用 Data.Text.replace 仅替换第一次出现的文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14922070/