В Rust необработанный строковый литерал (выделено мной):
...начните с символа U+0072 (r), за которым следует менее 256 символов U+0023 (#) и символ U+0022 (двойная кавычка). Необработанное тело строки может содержать любую последовательность символов Unicode и завершается только другим символом U+0022 (двойная кавычка), за которым следует такое же количество символов U+0023 (#), которое предшествовало открывающему символу U+0022 (двойная кавычка). цитата) персонаж.
Что позволяет записывать необработанные строковые литералы следующим образом:
let greeting = r#"Hello"#;
let salutation = r##"Goodbye"##;
let call_me = r##"#555-5555"##;
// etc.
То, что я ищу, это название этой общей парадигмы дизайна языка программирования. Насколько я могу это описать, это тот случай, когда переменное количество символов (в случае Rust, знак фунта («#»)) действует как своего рода «начальный и конечный разделитель» над содержимым тела строки, чтобы различать конец определения строки и содержимое тела.
Глядя на грамматику для Rust, я не смог найти ни одного названия продукта, которое дало бы мне какие-либо подсказки относительно того, как это назвать, только:
raw_string : '"' raw_string_body '"' | '#' необработанная_строка '#' ;
Знаете ли вы другой язык, который также имеет эту функцию? Даже в исходниках Rust я не нашел для него названия, кроме того, что они упоминаются как «хэши» строки. Но если нам разрешено что-то придумывать, я бы сказал, что струна «усилена» большим количеством #.
@kmdreko - в Lua есть что-то похожее для блочных комментариев/строк, обе из которых используют двойные квадратные скобки в качестве начального ("[[") и конечного ("]]") разделителей. В случае с Lua 0+ equals (" = ") можно использовать по аналогии с необработанными строковыми литералами Rust: lua str = [==[ <html> <body> <div id = "foo"></div> </body> </html> ]==]

Я бы назвал это «парными разделителями для необработанных строк».
Использование настраиваемых разделителей восходит к sed и vi, которые позволяют использовать настраиваемые разделители при использовании s (подстановка) и подобных выражений. Perl принял этот подход в дополнение к парным разделителям в выражениях s и tr (например, s{.*}{foo}g) и некоторых других контекстах, и Ruby в некоторых случаях имеет то же самое.
В Rust нет пользовательских разделителей, но есть своего рода парный разделитель, как вы описали. Perl использует фразу «парные разделители» при описании использования таких вещей, как qw «foo bar baz», и это, по сути, тот же синтаксис, только гораздо более ограниченный. Таким образом, это фактически просто парные разделители.
Я не думаю, что это «парадигма» или что она обязательно имеет (или нуждается) в специальном имени. Я думаю, вы уже дали ему довольно хорошее название: разделители. Может быть, «совпадающие разделители», потому что они должны быть одинаковыми в начале и в конце. Возможно, «разделители соответствия переменных», потому что количество знаков фунта произвольно. Возможно, «разделители строк, соответствующие переменным», потому что они применяются только к строковым литералам.