#escaping #quote #shell-escape

snailquote

使用类似shell的引用方式来转义和反转义字符串

5个不稳定版本

0.3.1 2021年10月28日
0.3.0 2020年1月29日
0.2.0 2019年1月3日
0.1.1 2018年12月30日
0.1.0 2018年7月13日

#360文本处理

Download history 7002/week @ 2024-03-14 5938/week @ 2024-03-21 6581/week @ 2024-03-28 4949/week @ 2024-04-04 4789/week @ 2024-04-11 6083/week @ 2024-04-18 5794/week @ 2024-04-25 5524/week @ 2024-05-02 7496/week @ 2024-05-09 6526/week @ 2024-05-16 5405/week @ 2024-05-23 6165/week @ 2024-05-30 5731/week @ 2024-06-06 5506/week @ 2024-06-13 7262/week @ 2024-06-20 5698/week @ 2024-06-27

25,316 每月下载量
132 个crates (56 直接) 使用

GPL-3.0-only

22KB
354

snailquote

Build Status

Docs

此库提供转义和反转义字符串的函数。

它以类似'sh'兼容的方式转义(例如,支持反斜杠转义的引号,支持不转义的撇号)。

此外,它还提供对常见的C-like ascii转义的支持(如换行符\n,垂直制表符\v等)以及类似Rust字符串的Unicode(通过\u{12ff}风格的转义)。

更重要的是,此库还提供了将给定的转义文本反转义以恢复原始字符串的能力。

有关用法和哪些转义序列将生效的更多信息,请参阅文档

兼容性

snailquote旨在明确与以下用例兼容

  1. 用于用户编辑的任意字符串的可读编码;编辑后重新解析这些字符串。
  2. 读取和写入os-release文件的值。

其他文件可能有类似的类似shell的格式,snailescape可以与之工作,但需要您验证它是否足够相似以正确处理。

snailquote受到以下启发,但不与以下兼容

  1. gnulib quotearg,用于'ls'输出 -- snailquote处理Unicode转义的方式不同。
  2. ANSI-c字符串字面量引用 -- snailquote处理Unicode的方式不同,并支持shell相关的转义,如'$'。
  3. sh字符串引用 -- snailquote处理Unicode的方式不同,并且对shell特殊字符的处理更为宽松。

为什么不使用

我找到的其他Rust库中有一个或多个以下问题

  1. 转义文本不易于人类编辑
  2. 没有方法可以反转义文本
  3. NIH

依赖项

~0.7–1.1MB
~21K SLoC