¿Qué significa el operador r#""# en Rust y cómo usar literales de cadena crudos?
¡Hola! Empecé a estudiar Rust recientemente y me encontré con una construcción confusa en código ajeno. Allí había algo como:
```rust
let pattern = r#"^\\d+\\.\\d+\\.\\d+\\.\\d+$"#;
let json = r#"{"name": "John", "age": 30}"#;
```
Veo que antes de la cadena hay una letra `r`, y luego los símbolos `#"` y `"#`. ¿Qué significa todo esto? Sé que en Rust los literales de cadena se indican con comillas dobles `"..."`, y el símbolo `\\` se usa para escapar. Pero aquí hay algo de magia con `#`.
Me confunde especialmente que dentro de esta cadena hay comillas dobles normales. En una cadena normal tendría que escribir `\\"` para escapar, pero aquí las comillas están tal cual. Y además esos signos de numeral `#` en los bordes, ¿para qué sirven? ¿Se puede prescindir de ellos?
Intenté escribir simplemente `r"..."`, pero el compilador se queja si dentro de la cadena hay comillas. En cambio, con `r#"..."#` funciona. ¿Por qué es así? ¿Y qué pasa si necesito usar `"#` directamente dentro de la cadena? Por ejemplo, si escribo código que genera JSON o re...