标准库中是否有完善的功能或一些推荐的方法来扩展Rust中的转义序列?

问题描述 投票:0回答:1

我正在编写的应用程序中接受用户输入,并希望扩展用户输入的转义序列。

例如,如果用户输入\\n,它将被解释为str \\\\n。我想以一般的方式解释该字符串(转换为换行符)和类似的字符串。

我当然可以在最基本的位置上使用String::replace(),而没有其余部分,但我更喜欢一种通用的解决方案,该解决方案还可以处理十六进制转义符(\x61a)。

rust
1个回答
5
投票

转义通常由词法分析器/解析器处理(基本上它们是语言语法的一部分,我不认为有一个stdlib函数可以管理它们,因为它会在更低的层次上进行处理。

此外,转义往往是特定于语言的,可能是意料之外的方式。 Rust的singularly small list of escape sequencesprobably desirable compared to the garbage available from C's,但我仍然不知道您是否希望例如任意十六进制或Unicode转义序列。

因此,我建议您设置自己明确支持的转义列表,尽管您确实不想there are probably third-party packages which can help you

© www.soinside.com 2019 - 2024. All rights reserved.