在Haskell中,如何替换ByteString中的ASCII字符子字符串?

时间:2014-02-24 14:52:54

标签: haskell bytestring

Haskell中,如何替换ASCII中的ByteString字符子字符串?如何使用字符串作为参数在replace中使用函数Data.ByteString.Search?还有其他方法可以在ByteString中执行子字符串替换吗?例如,将ByteString转换为String是否有意义,使用String执行字符串替换,然后将结果转换回ByteString?< / p>

2 个答案:

答案 0 :(得分:5)

必须使用pack将字符串转换为ByteString

如果字符串是字符串文字,则可以使用OverloadedStrings扩展名。这会自动将字符串文字转换为ByteString

答案 1 :(得分:1)

示例Teetoo的answer

Prelude> :module + Data.ByteString.Char8 Data.ByteString.Search
Prelude Data.ByteString.Char8 Data.ByteString.Search> replace (pack "World") (pack "Derek") (pack "Hello, World!")
"Hello, Derek!"
Prelude Data.ByteString.Char8 Data.ByteString.Search>