Эскейп последовательности си шарп

C# Language
Строковые escape-последовательности

Последовательности escape-последовательности строк преобразуются в соответствующий символ во время компиляции . Обычные строки, которые содержат обратную косую черту, не преобразуются.

Например, строки notEscaped и notEscaped2 ниже не преобразуются в символ новой строки, а остаются как два разных символа ( ‘\’ и ‘n’ ).

string escaped = "\n"; string notEscaped = "\\" + "n"; string notEscaped2 = "\\n"; Console.WriteLine(escaped.Length); // 1 Console.WriteLine(notEscaped.Length); // 2 Console.WriteLine(notEscaped2.Length); // 2 

Управляющие последовательности символов Unicode

string sqrt = "\u221A"; // √ string emoji = "\U0001F601"; // 😁 string text = "\u0022Hello World\u0022"; // "Hello World" string variableWidth = "\x22Hello World\x22"; // "Hello World" 

Выделение специальных символов в символьных литералах

Выделение специальных символов в строковых литералах

// The filename will be c:\myfile.txt in both cases string filename = "c:\\myfile.txt"; string filename = @"c:\myfile.txt"; 

Во втором примере используется строковый литерал , который не обрабатывает обратную косую черту как escape-символ.

string text = "\"Hello World!\", said the quick brown fox."; string verbatimText = @"""Hello World!"", said the quick brown fox."; 

Обе переменные будут содержать один и тот же текст.

«Привет, мир!», — сказала быстрая коричневая лиса.

Вербальные строковые литералы могут содержать символы новой строки:

string text = "Hello\r\nWorld!"; string verbatimText = @"Hello World!"; 

Обе переменные будут содержать один и тот же текст.

Неопознанные escape-последовательности создают ошибки времени компиляции

Следующие примеры не будут компилироваться:

Вместо этого они будут генерировать ошибку Unrecognized escape sequence во время компиляции.

Использование escape-последовательностей в идентификаторах

Последовательности Escape не ограничиваются string и char символами.

Предположим, вам необходимо переопределить сторонний метод:

protected abstract IEnumerable ObtenirŒuvres(); 

и предположим, что символ Œ недоступен в кодировке символов, используемой для исходных файлов C #. Вам повезло, разрешено использовать \U######## типа \u#### или \U######## в идентификаторах кода. Так что законно писать:

protected override IEnumerable Obtenir\u0152uvres() < // . >

и компилятор C # будет знать, что Œ и \u0152 являются \u0152 и тем же символом.

Читайте также:  Php verify file extension

(Тем не менее, может быть хорошей идеей переключиться на UTF-8 или аналогичную кодировку, которая может обрабатывать все символы.)

  • Начало работы с C # Language
  • BackgroundWorker
  • BigInteger
  • BindingList
  • CLSCompliantAttribute
  • Enum
  • FileSystemWatcher
  • Generic Lambda Query Builder
  • Guid
  • ICloneable
  • IComparable
  • IEnumerable
  • ILGenerator
  • Interoperability
  • Linq to Objects
  • LINQ to XML
  • Microsoft.Exchange.WebServices
  • NullReferenceException
  • O (n) Алгоритм кругового вращения массива
  • ObservableCollection
  • String.Format
  • StringBuilder
  • System.DirectoryServices.Protocols.LdapConnection
  • System.Management.Automation
  • Verbatim Strings
  • Windows Communication Foundation
  • XDocument и пространство имен System.Xml.Linq
  • XmlDocument и пространство имен System.Xml
  • Анализ регулярных выражений
  • Аннотации данных
  • Анонимные типы
  • Асинхронные / ожидающие, фоновые работы, задачи и примеры потоков
  • Асинхронный разъем
  • Асинхронный-Await
  • Атрибуты
  • Включая ресурсы шрифтов
  • Внедрение зависимости
  • Внедрение шаблона дизайна мухи
  • Внедрение шаблона проектирования декоратора
  • Возможности C # 3.0
  • Возможности C # 4.0
  • Возможности C # 5.0
  • Возможности C # 6.0
  • Возможности C # 7.0
  • Встроенные типы
  • Выполнение HTTP-запросов
  • Генерация кода Т4
  • Генерация случайных чисел в C #
  • Двоичная сериализация
  • Делегаты
  • Делегаты Func
  • Деревья выражений
  • Дженерики
  • диагностика
  • Динамический тип
  • Доступ к базам данных
  • Доступ к общей общей папке с именем пользователя и паролем
  • Заблокировать
  • Запросы LINQ
  • Идентификация ASP.NET
  • Именованные аргументы
  • Именованные и необязательные аргументы
  • Импорт контактов Google
  • имя оператора
  • Индексатор
  • Инициализаторы коллекции
  • Инициализаторы объектов
  • Инициализация свойств
  • Интерполяция строк
  • Интерфейс IDisposable
  • Интерфейс INotifyPropertyChanged
  • Интерфейс IQueryable
  • Интерфейсы
  • Использование json.net
  • Использование SQLite в C #
  • Использование директивы
  • Использование заявления
  • итераторы
  • Как использовать C # Structs для создания типа Union (аналогично C Unions)
  • Кастинг
  • Ключевое слово доходности
  • Ключевые слова
  • Кодовые контракты
  • Кодовые контракты и утверждения
  • Комментарии и регионы
  • Комментарии к документации XML
  • Компиляция времени выполнения
  • Конкатенация строк
  • Конструкторы и финализаторы
  • Конструкции потока данных параллельной библиотеки задач (TPL)
  • Контекст синхронизации в Async-Await
  • Кортеж
  • Криптография (System.Security.Cryptography)
  • Кэширование
  • литералы
  • Лямбда-выражения
  • Лямбда-выражения
  • Манипуляция строк
  • Массивы
  • методы
  • Методы DateTime
  • Методы расширения
  • Многопоточность
  • Модификаторы доступа
  • наследование
  • Начало работы: Json с C #
  • Небезопасный код в .NET.
  • Неверные типы
  • неизменность
  • Нуль-условные операторы
  • Обеспечение безопасности переменной потока
  • Обзор коллекций c #
  • Обработка FormatException при преобразовании строки в другие типы
  • Обработка исключений
  • Обработчик проверки подлинности C #
  • Общие операции с строками
  • Объектно-ориентированное программирование на C #
  • Оператор Null-Coalescing
  • Оператор равенства
  • операторы
  • отражение
  • Параллельная библиотека задач
  • Параллельный LINQ (PLINQ)
  • перекручивание
  • перелив
  • Платформа компилятора .NET (Roslyn)
  • Полиморфизм
  • Поток
  • Преобразование типа
  • Препроцессорные директивы
  • Примеры AssemblyInfo.cs
  • Проверено и не отмечено
  • Псевдонимы встроенных типов
  • Равные и GetHashCode
  • Разрешение перегрузки
  • Реактивные расширения (Rx)
  • Реализация Singleton
  • Рекурсия
  • Сборщик мусора в .Net
  • свойства
  • Секундомеры
  • сетей
  • События
  • Соглашения об именах
  • Создание консольного приложения с использованием редактора Plain-Text и компилятора C # (csc.exe)
  • Создание собственного MessageBox в приложении Windows Form
  • Создание шаблонов проектирования
  • Статические классы
  • Строковые escape-последовательности
  • Структурные шаблоны проектирования
  • Структуры
  • Сценарий C #
  • Таймеры
  • Тип значения vs Тип ссылки
  • указатели
  • Указатели и небезопасный код
  • Условные заявления
  • Файловый и потоковый ввод-вывод
  • Фильтры действий
  • Функциональное программирование
  • Функция с несколькими возвращаемыми значениями
  • Хэш-функции
  • Частичный класс и методы
  • Читать и понимать Stacktraces
  • Чтение и запись .zip-файлов
Читайте также:  All about session in php

Источник

Escape-знаки в регулярных выражениях

Обратная косая черта (\) в регулярном выражении имеет одно из указанных ниже значений.

Escape-символы распознаются в шаблонах регулярных выражений, но не в шаблонах замены.

Escape-знаки в NET

В таблице ниже перечислены escape-последовательности, поддерживаемые регулярными выражениями в .NET.

Пример

В приведенном ниже примере показано использование escape-последовательностей в регулярном выражении. В нем анализируется строка, содержащая названия крупнейших городов мира и их население в 2009 г. Название каждого города отделяется от его населения табуляции ( \t ) или вертикальной полосой (| или \u007c ). Отдельные города и их население разделяются символами возврата каретки и перевода строки.

using System; using System.Text.RegularExpressions; public class Example < public static void Main() < string delimited = @"\G(.+)[\t\u007c](.+)\r?\n"; string input = "Mumbai, India|13,922,125\t\n" + "Shanghai, China\t13,831,900\n" + "Karachi, Pakistan|12,991,000\n" + "Delhi, India\t12,259,230\n" + "Istanbul, Türkiye|11,372,613\n"; Console.WriteLine("Population of the World's Largest Cities, 2009"); Console.WriteLine(); Console.WriteLine("", "City", "Population"); Console.WriteLine(); foreach (Match match in Regex.Matches(input, delimited)) Console.WriteLine(" ", match.Groups[1].Value, match.Groups[2].Value); > > // The example displays the following output: // Population of the World's Largest Cities, 2009 // // City Population // // Mumbai, India 13,922,125 // Shanghai, China 13,831,900 // Karachi, Pakistan 12,991,000 // Delhi, India 12,259,230 // Istanbul, Türkiye 11,372,613 
Imports System.Text.RegularExpressions Module Example Public Sub Main() Dim delimited As String = "\G(.+)[\t\u007c](.+)\r?\n" Dim input As String = "Mumbai, India|13,922,125" + vbCrLf + _ "Shanghai, China" + vbTab + "13,831,900" + vbCrLf + _ "Karachi, Pakistan|12,991,000" + vbCrLf + _ "Delhi, India" + vbTab + "12,259,230" + vbCrLf + _ "Istanbul, Türkiye|11,372,613" + vbCrLf Console.WriteLine("Population of the World's Largest Cities, 2009") Console.WriteLine() Console.WriteLine(" ", "City", "Population") Console.WriteLine() For Each match As Match In Regex.Matches(input, delimited) Console.WriteLine(" ", match.Groups(1).Value, _ match.Groups(2).Value) Next End Sub End Module ' The example displays the following output: ' Population of the World's Largest Cities, 2009 ' ' City Population ' ' Mumbai, India 13,922,125 ' Shanghai, China 13,831,900 ' Karachi, Pakistan 12,991,000 ' Delhi, India 12,259,230 ' Istanbul, Türkiye 11,372,613 

Возможные интерпретации регулярного выражения \G(.+)[\t\u007c](.+)\r?\n показаны в следующей таблице.

Читайте также:  Расположить несколько блоков по центру css
Шаблон Описание
\G Начать сопоставление там, где закончилось последнее соответствие.
(.+) Сопоставление любого символа один или более раз. Это первая группа записи.
[\t\u007c] Совпадение с табуляции ( \t ) или вертикальной полосой (|).
(.+) Сопоставление любого символа один или более раз. Это вторая группа записи.
\r?\n Соответствует отсутствию или одному вхождению символа возврата каретки, за которым следует новая строка.

См. также

Источник

Оцените статью