C # Regex Escape-последовательности - PullRequest
11 голосов
/ 25 ноября 2010

Есть ли где-нибудь полный список escape-последовательностей регулярных выражений? Я нашел это , но для начала ему не хватало \\ и \e. До сих пор я придумал этот шаблон регулярных выражений, который, мы надеемся, соответствует всем escape-последовательностям:

 @"\\([bBdDfnreasStvwWnAZG\\]|x[A-Z0-9]{2}|u[A-Z0-9]{4}|\d{1,3}|k<\w+>)"

Ответы [ 3 ]

24 голосов
/ 25 ноября 2010

В качестве альтернативы, если вы хотите только правильно экранировать строку, вы можете просто зависеть от Regex.Escape(), который сделает вам необходимый экранирование.

Совет: такжеRegex.Unescape()

6 голосов
/ 25 ноября 2010

Эта страница MSDN (элементы языка регулярных выражений) является хорошей отправной точкой, с этой подстраницей специально для escape-последовательностей.

5 голосов
/ 25 ноября 2010

Не забудьте о миллионах возможных категорий юникода: \p{Lu}, \P{Sm} и т. Д.

Их слишком много, чтобы вы могли сопоставить их по отдельности, но я полагаю, вы могли бы использовать что-то вроде \\[pP]\{[A-Za-z0-9 \-_]+?\} (не проверено).

И есть еще более простые вещи, которых нет в вашем списке: \., \+, \*, \? и т. Д. И т. Д.

Если вы просто пытаетесь удалить существующее регулярное выражение, вы можете попробовать Regex.Unescape. Это не идеально, но, вероятно, лучше, чем все, что вы или я могли бы сбить за короткое время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...