Function grep_cli::unescape

source ·
pub fn unescape(s: &str) -> Vec<u8> 
Expand description

Unescapes a string.

It supports a limited set of escape sequences:

  • \t, \r and \n are mapped to their corresponding ASCII bytes.
  • \xZZ hexadecimal escapes are mapped to their byte.

Everything else is left as is, including non-hexadecimal escapes like \xGG.

This is useful when it is desirable for a command line argument to be capable of specifying arbitrary bytes or otherwise make it easier to specify non-printable characters.

The dual of this routine is escape.

§Example

This example shows how to convert an escaped string (which is valid UTF-8) into a corresponding sequence of bytes. Each escape sequence is mapped to its bytes, which may include invalid UTF-8.

Pay special attention to the use of raw strings. That is, r"\n" is equivalent to "\\n".

use grep_cli::unescape;

assert_eq!(&b"foo\nbar\xFFbaz"[..], &*unescape(r"foo\nbar\xFFbaz"));