Использование регулярных выражений в Visual Studio
Visual Studio использует регулярные выражения платформы .NET Framework, чтобы поиск и замену текста.В Visual Studio 2010 и более ранних версиях Visual Studio использовало пользовательский синтаксис регулярного выражения в окнах "Найти и заменить".В этом разделе объясняется, как преобразовать некоторые более использования пользовательских символов регулярного выражения к версиям .NET.
Совет |
---|
В операционных системах Windows большинство строк заканчиваются словом "\r\n" (возврат каретки с новой строкой).Эти символы не отображаются, но отсутствуют в редакторе и передаются в службу регулярных выражений платформы .NET. |
Дополнительные сведения см. в разделе Регулярные выражения в .NET Framework.
Совет |
---|
Дополнительные сведения о регулярных выражениях, используемых в шаблонах замены, см. в разделе Подстановки в регулярных выражениях.Для использования пронумерованной группы записи синтаксис $1 для определения пронумерованную группы и (x), чтобы определить группу в сообщении.Например, группированное регулярное выражение (\d)([a-z]) обнаруживает 4 совпадения в следующей строке. 1a 2b 3с 4d.Строка замены z$1 преобразовывает эту строку в z1 z2 z3 z4>. Эквивалентный синтаксис в Visual Studio 2010 — {:z}([a-z]) для сгруппированного регулярного выражения и z\1 для строки замены. |
Сравнение регулярных выражений в .NET Framework
Регулярные выражения можно преобразовать от версии, используемой в предыдущих версиях Visual Studio с помощью регулярных выражений платформы .NET Framework с помощью следующей таблицы.
Назначение |
New |
Старый |
Новый пример |
---|---|---|---|
Совпадение с любым одиночным символом (кроме символа разрыва строки) |
. |
. |
а.о совпадает с "ато" в слове "каток" и "aзo" в слове "азот", но не с "арто" в слове "картон". |
Совпадение с нулем или нескольким вхождениями предыдущего выражения (совпадение с максимальным количеством знаков) |
* |
* |
a*r совпадает с "r" в "rack", "ar" в "ark" и "aar" в "aardvark" |
Совпадение с любым символом ноль или более раз (подстановочный знак *) |
.* |
.* |
c.*e совпадает с “cke” в “racket”, “comme” в “comment” и “code” в “code” |
Совпадение с одним или нескольким вхождениями предыдущего выражения (совпадение с максимальным количеством знаков) |
+ |
+ |
e.+e совпадает с "eede" в "feeder", но не с "ee". |
Совпадение с любым символом один ноль или более раз (подстановочный знак ?) |
.+ |
.+ |
e.+e совпадает с "eede" в "feeder", но не с "ee". |
Совпадение с нулем или нескольким вхождениями предыдущего выражения (совпадение с минимальным количеством знаков) |
*? |
@ |
e.*?e совпадает с "ee" в "feeder", но не с "eede". |
Совпадение с одним или нескольким вхождениями предыдущего выражения (совпадение с минимальным количеством знаков) |
+? |
# |
e.+?e совпадает с "ente" и "erprise" в слове "enterprise", но не с целым словом "enterprise". |
Совпадает с вхождением, только если оно находится в начале строки |
^ |
^ |
^car совпадает со словом "car" только тогда, когда оно находится в начале строки. |
Совпадает с вхождением, только если оно находится в конце строки |
\r?$ |
$ |
End\r?$ совпадает с "end" только когда "end" находится в конце строки. |
Совпадение с любым одиночным символом в наборе |
[abc] |
[abc] |
b[abc] совпадает с "ba", "bb" и "bc". |
Совпадение с любым символом в диапазоне символов |
[a-f] |
[x-y] |
ве[н-т] совпадает с "вен" в слове "вена", "вес" в слове "весна" и "вет" в слове "ветер", но не с "век" в слове "веко". |
Получение и неявная нумерация выражения в скобках |
() |
() |
([a-z])X\1 совпадает с "aXa"и "bXb", но не с "aXb". ". "\ 1 " относится к первой группе выражения "[a-z]". |
Признание соответствия недействительным |
(?!abc) |
~(abc) |
прав (?!да) совпадает со словами "правый" и "правота", но не со словом "правда". Кроме того, находит второй real (но не первый real) в realityreal. |
Сопоставление любого символа не в заданном наборе символов |
[^abc] |
[^abc] |
ве[^н-т] совпадает с "век" в слове "веко", "вел" в слове "велосипед" и "веч" в слове "вечер", но не с "вен" в слове "вена". |
Совпадение с выражением до или после символа дизъюнкции. |
| |
| |
(хвойный|лиственный) лес совпадает со строками "хвойный лес" и "лиственный лес". |
Преобразование в escape-последовательность символа, следующего за обратной косой чертой |
\ |
\ |
\^ соответствует символу ^. |
Укажите количество вхождений предшествующих символа или группы |
{x}, где x — число вхождений |
\ x, где x — число вхождений |
x(ab){2}x соответствует "xababx", а x(ab){2,3}x соответствует "xababx" и "xabababx", но не "xababababx". |
Сопоставление текста в классе символов Юникода, где X — номер Юникода.Дополнительные сведения о классах символов Юникода см. в разделе |
\p{X} |
:X |
\p{Lu} совпадает с "T" и "D" в "Thomas Doe". |
Совпадение с границей слова |
\b (вне класса символов \b определяет границу слова, а внутри класса символов определяет стирание назад). |
< и > указывают начало и конец слова |
\ bin соответствует "in" в "inside", но не в "pinto". |
Соответствие разрыву строки (то есть возврат каретки с новой строкой). |
\r?\n |
\n |
Конец\r?\nНачало совпадает со словами "Конец" и "Начало", только если "Конец" является последним словом на строке, а "Начало" — первым словом на следующей строке. |
Совпадение с любым алфавитно-цифровым символом |
\w |
:a |
a\wd совпадает с "add" и "a1d", но не с "a d". |
Совпадение с любым символом пробела. |
(?([^\r\n])\s) |
:b |
Общедоступный\sинтерфейс совпадает с фразой "Общедоступный интерфейс". |
Совпадение с любым числовым символом |
\d |
:d |
\d совпадает с "3" в "3456", "2" в 23" и "1" в "1". |
Совпадение с символом Юникода |
\uXXXX, где XXXX указывает значение символа Юникода. |
\uXXXX, где XXXX указывает значение символа Юникода |
\u0065 совпадает со знаком "e". |
Сопоставление идентификатора |
\b(_\w+|[\w-[0-9_]]\w*)\b |
:i |
Соответствует "type1" но не &type1" или "#define". |
Сопоставление строке внутри кавычек |
((\".+?\")|('.+?')) |
:q |
Сопоставляет любую строку внутри одинарных или двойных кавычек. |
Соответствие шестнадцатеричного числа |
\b0[xX]([0-9a-fA-F])\b |
:h |
Сопоставляет "0xc67f", но не "0xc67fc67f". |
Совпадение целой и дробной частей |
\b[0-9]*\.*[0-9]+\b |
:n |
Соответствует "1.333". |