close

Вход

Забыли?

вход по аккаунту

?

Регулярные выражения

код для вставкиСкачать
информатика
Регулярные выражения
Регулярное выражение –
набор правил для описания текстовых строк.
Правила записываются в виде последовательности обычных символов и метасимволов, которая затем используется для в операциях поиска замены текста.
Метасимволы
–
это символы, имеющие в регулярном выражении специальное значение.
Например в Windows метасимвол *
используемый для порождения имен файлов и обозначающий любую допустимую последовательность.
Регулярные выражения в C#
основаны на стандарте PERL
, который используется в Unix
, его поддерживают и другие языки Метасимволы в C#
Метасимвол
Значение
Пример
\
Указывает, что искомый символ –
специальный, литерал, ссылка назад (повторение предыдущего) или восьмиричный Escape символ
\
n –
символ новая строка
\
\
-
соответствует символу \
\
( -
соответствует символу (
\
) -
соответствует символу )
Регулярные выражения
Метасимвол
Значение
Пример
^
Соответствует позиции в начале строки
^A –
соответствует А, если А –
первый символ строки $
Соответствует позиции в конце строки
$D –
соответствует D
, если D
–
последний символ строки
*
Соответствует предыдущему символу, повторенному ноль или более раз
Ba*rk –
соответствует Brk, Bark, Baark, Baark и т.д.
?
Соответствует предыдущему символу, повторенному ноль или один раз
Ba?rk –
соответствует только Brk, Bark
+
Соответствует предыдущему символу, повторенному один или один раз
Ba+rk –
соответствует Bark, Baark, Baark и т.д.
Регулярные выражения
Метасимвол
Значение
Пример
{n}
Соответствует символу, повторенному точно n
раз
Hob{2}it –
соответствует только Hobbit
{n,}
Соответствует символу, повторенному как минимум n
раз
Hob{2
,
}it –
соответствует Hobbit
Hobbbit Hobbbit и т.д, но не Hobit
{n,m}
Соответствует символу, повторенному от n
до
m
раз
Hob{2
,3
}it –
соответствует только Hobbit
и Hobbbit
(
шаблон
)
Подвыражение соответствующее шаблону
Из подвыражения можно получить доступ к отдельным совпадениям (фрагментам)
Anatom
(
y|ies) соответствует Anatomy
или Anatomies
(
?:
Шаблон
)
Подвыражение соответствующее шаблону, но не сохраняющее фрагменты
Anatom
(
?:y|ies) соответствует Anatomy
или Anatomies
Регулярные выражения
Метасимвол
Значение
Пример
(
?=
Шаблон
)
Подвыражение, выполняющее положительный поиск вперед. Ему соответствует строка в точке, в которой начинается подходящая по шаблону строка
Ford (?=Focus|Mustang) соответствует Ford в Ford Focus и в Ford Mustang
(
?!
Шаблон
)
Подвыражение, выполняющее отрицательный поиск вперед. Ему соответствует строка в точке, в которой начинается не подходящая по шаблону строка
Ford (
!
=Focus|Mustang) соответствует Ford в Ford Escort и в Ford Explorer
Но не Ford Focus и Ford Mustang
x|y
Соответствует
x
или y
Где x
и y
–
один
или более символов
war|peace соответствует war
или peace
[abc]
Соответствует любому из символов в скобках
[ab]bc соответствует
abc и
bbc
Регулярные выражения
Метасимвол
Значение
Пример
[^abc]
Соответствует любому символу кроме указанных в скобках
[ab]bc соответствует
cbc, dbc, ebc и так далее но не abc и
bbc
[a
-
z]
Соответствует любому символу
в заданном диапазоне
[a
-
с
]bc соответствует
abc, bbc и
cbc
[^a
-
z]
Соответствует любому символу
вне заданного диапазона
[^a
-
с
]bc соответствует
dbc, ebc, dbc и так далее но не abc, bbc и
cbc
\
b
Соответствует
границе слова –
позиции между словом и пробелом
Его можно использовать для выделения элементов в начале и конце слов
ed
\
b соответствует
ed в слове Edward
\
bed соответствует
ed в слове
drugged
Регулярные выражения
Метасимвол
Значение
Пример
\
B
Соответствует
середине слова (любой позиции, кроме границы)
ed
\
B соответствует
ed в слове
predator но не в bed
\
cx
Соответствует управляющему символу
x
\
cM соответствует
Ctrl
-
M –
символу возврата каретки
\
d
Соответствует любой цифре ( от 0 до 9)
\
d
соответствует 0, 1, …9
\
D
Соответствует любому символу кроме цифры \
D -
c
оответствует любому символу кроме
0, 1, …9
\
t
Соответствует символу
табуляции
\
ta –
c
оответствует
\
ta
\
v
Соответствует символу
вертикальной табуляции
\
va –
c
оответствует
\
va
Регулярные выражения
Метасимвол
Значение
Пример
\
f
Соответствует символу
перевода страницы (fom feed)
\
fa –
c
оответствует
\
fa
\
r
Соответствует символу
возврата каретки
\
ra –
c
оответствует
\
ra
\
n
Соответствует символу
новой строки
\
na
-
соответствует \
na
\
s
Соответствует любому символу форматирования (пробелу, табуляции. вертикальной табуляции, переводу страницы возврату каретки, новой строке \
sa -
соответствует
<
пробел
>a, \
ta, \
na, \
ra и так далее
\
S
Соответствует любому символу кроме символов форматирования
\
Sa -
соответствует
aa, ba, ca и так далее, но не <
пробел
>a, \
ta, \
na, \
ra и так далее
Регулярные выражения
Метасимвол
Значение
Пример
\
w
Соответствует любой букве алфавита (
A
-
Z, a
-
z), цифре (0
-
9) и символу подчеркивания ( _ ) \
wa –
c
оответствует
Aa, Ba и так далее
\
W
Соответствует любому символу кроме букв алфавита (
A
-
Z, a
-
z), цифр (0
-
9) и символа подчеркивания ( _ ) \
Wa –
c
оответствует
*a, +a, %a и так далее
\
xn
Соответствует символу
c шестнадцатиричным кодом n
Этот код должен быть из двух символов
\
x43 соответствует C
.
Соответствует любому одному символу кроме \
n
hob.it соответствует hobait, hobbit, hobcit и так далее
Регулярные выражения
Метасимвол
Значение
Пример
\
num
Ссылка назад, на более ранний фрагмент. num
-
целое положительное число
(
.
)
\
1 -
соответствует
двум последовательным одинаковым символам.
(
.
) –
регулярное выражение соответствует любому одиночному символу. \
1 –
повторяет выделение, проверяя следующий символ на совпадение с только что выделенным.
\
n
Восьмеричная escape
–
последовательность. Если перед \
n
идет как минимум n фрагментов, то n
ссылка назад. Ели нет то n
-
восьмеричная цифра (0
-
7)
\
6
Регулярные выражения
Метасимвол
Значение
Пример
\
nm
Восьмеричная escape
–
последовательность. Если перед \
nm
идет как минимум nm фрагментов, то это
ссылка назад. Если \
nm
предваряется как минимум n
фрагментами то это
ссылка назад за которой следует литерал m
. Иначе это escape
–
последовательность где n
и
m
-
восьмеричные цифры
\
34
\
nml
Восьмеричная escape
–
последовательность
nml
. Где n цифра от 0 до 3, а ml
–
восьмеричные цифры
\
217
\
un
Соответствует символу
Unicode c кодом n
обозначенному четырьмя шестнадцатиричными цифрами
\
u0044 соответствует символу D
Регулярные выражения
Примеры
\
bs
\
S*e
\
b выделяет слова
•
начинающиеся на букву s
(
\
bs)
•
и кончающиеся на букву e (
\
S*e
\
b)
•
\
S* -
(
\
S –
любой символ * -
предыдущий повторенный 0 или более раз)
\
S*(.)
\
1
\
S* выделяет слова в которых содержатся два одинаковых символа подряд
•
Пары \
S
* в начале и в конце
выражения выделяют любые символы кроме пробелов, т.е. c
лова
•
(.)
\
1
выделяют два одинаковых символа идущие последовательно
\
S*u+
\
S*
выделяет слова содержащие букву u
•
Часть выражения u+
позволяет выделить слова, содержащие одну или несколько букв u
\
S*(ai)
\
S*
выделяет слова содержащие ai
\
S*(ai|ie)
\
S*
выделяет слова содержащие ai или
ie
Регулярные выражения
\
S*[kf]
\
S* -
выделяет слова содержащие буквы k
или f
\
S*[b
-
d]
\
S* -
выделяет слова содержащие хотя бы одну букву из диапазона от
b до
d
.* -
выделение строки без завершающего символа новой строки
Пусть есть текст : Сшит колпак не по колпаковски, надо колпак переколпаковать
Что происходит при поиске фрагмента заданного выражением .*
колпак
Сначала найдется фрагмент удовлетворяющий .*
Это
вся строка. Затем начинается поиск назад, отбрасывая в найденном фрагменте по симолу, пока не будет найдено соответствие с образом. В этом случае найденный фрагмент будет. Сшит колпак не по колпаковски, надо колпак переколпак Это «жадный» алгоритм
Выражение .*?
колпак
запускает «ленивый» алгоритм. Который начнет поиск в строке с пустого фрагмента “” добавляя в него по символу пока не найдет соответствие. Тогда найденный фрагмент Сшит колпак Регулярные выражения
Классы C# для регулярных выражени
Пространство имен System.Text.Regular.Expessions
Класс Описание
Capture
Результат выделения подвыражения
CaptureCollection
Коллекция выделений подвыражений. Это коллекция объектов класса Capture
Group
Группа выделений
GroupCollection
Коллекция групп выделений. Это коллекция объектов класса Group
Match
Результат совпадения строки с регулярным выражением
MatchCollection
Коллекция совпадения строк с регулярным выражением
. Это коллекция объектов класса Match
Регулярные выражения
Класс Описание
Regex
Регулярное выражение
RegexCompilationInfo
Информация, используемая компилятором для создания отдельной сборки из регулярного выражения 
Автор
chelener
Документ
Категория
Методические пособия
Просмотров
267
Размер файла
112 Кб
Теги
выражения, регулярные
1/--страниц
Пожаловаться на содержимое документа