Диплом: Автоматизация "личного кабинета" консультанта по недвижимости (на примере организации Росинформ)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
63
используйте выражение '[.\n]'.
(шабл
он)
Соответствует шаблону и фиксирует это соответствие.
Сохраненное соответствие может быть извлечено из коллекции
соответствий с помощью в VB. Чтобы добиться соответствия самим
символам круглых скобок ( ), используем '\(' или '\)'.
(?:шаб
лон)
Соответствует шаблону, но при этом не фиксирует это
соответствие, то есть является соответствием, не сохраняемым для
возможного будущего использования. Удобно применять при
объединении частей шаблона с помощью (|) (символа "ИЛИ").
Например, выражение 'industr(?:y|ies)' является более экономичным,
чем выражение 'industry|industries'.
(?=pat
tern)
Положительное "заглядыванием вперед". Соответствует
исходной строке в любой точке где начинается соответствие
шаблону. Это нефиксируемое соответстствие, а это означает то, что
найденное совпадение не сохраняется для возможного последующего
использования. Например, 'Windows (?=95|98|NT|2000)' соответствует
фрагменту "Windows " в строке "Windows 98", но не соответствует
ему в строке "Windows 3.1". "Заглядыванием вперед" не поглощает
символы, что означает, что после сопоставления поиск продолжается
с позиции, следующей непосредственно за найденным
соответствием, а не после символов, включенных в заглядывание
вперед.
(?!patt
ern)
Отрицательное "заглядыванием вперед". Соответствует
исходной строке в любой точке где нет начала соответствия шаблону.
Это нефиксируемое соответстствие, что означает то, что найденное
совпадение не сохраняется для возможного последующего
использования. Соответствие с "заглядыванием вперед", происходит
при несоответствии строки pattern и без запоминания найденного
соответствия. Например, /Windows (?!95|98|NT|2000)/ соответствует
фрагменту "Windows " в строке "Windows 3.1", но не соответствует в
64
строке "Windows 98". "Заглядыванием вперед" не поглощает
символы, что означает, что после сопоставления поиск продолжается
с позиции, следующей непосредственно за найденным
соответствием, а не после символов, включенных в заглядывание
вперед.
x|y
Соответствует или x, или y. Например, 'z|food' соответствует "z"
или "food". '(z|f)ood' соответствует "zood" или "food".
[xyz]
Набор символов. Соответствует любому из заключенных в
квадратные скобки символов. Например, '[abc]' соответствует 'a' в
"plain".
[^xyz]
Отрицательный набор символов. Соответствует любому
символу, кроме заключенных в квадратные скобки. Например, '[^abc]'
соответствует 'p' в "plain".
[a-z]
Диапазон символов. Соответствует любому символу из
указанного диапазона. Например, '[a-z]' соответствует любому
алфавитному символу в нижнем регистре в диапазоне от 'a' до 'z'.
[^a-z]
"Отрицательный" диапазон символов. Соответствует любому
символу вне указанного диапазона. Например, '[^a-z]' соответствует
любому алфавитному символу, не входящему в диапазон от 'a' до 'z'.
\b
Соответствует границе слова, то есть позиции между словом и
пробелом. Например, 'er\b' соответствует 'er' в "never", но не
соответствует 'er' в "verb".
\B
Соответствует всем символам, кроме границы слов. 'er\B'
соответствует 'er' в "verb", но не 'er' в "never".
\cx
Соответсвует управляющему символу, указанному в x. К
примеру, \cM соответстсвует Ctrl-M или символу перевода каретки.
Значение x должно находиться в диапазоне A-Z или a-z. Если это не
так, c рассматривается как обычная буква 'c'.
\d
Соответствует цифре. Эквивалентно [0-9].
65
\D
Соответствует нецифровому символу. Эквивалентно [^0-9].
\f
Соответствует символу подачи бланка (FF). Эквивалентно \x0c
и \cL.
\n
Соответствует символу перевода строки (LF). Эквивалентно
\x0a и \cJ.
\r
Соответствует символу возврата каретки (CR). Эквивалентно
\x0d и \cM.
\s
Соответствует любому пробельному символу, включая пробел,
табулятор и т.д. Эквивалентно [ \f\n\r\t\v].
\S
Соответствует любому непробельному символу. Эквивалентно
[^ \f\n\r\t\v].
\t
Соответствует символу табуляции (HT). Эквивалентно \x09 и
\cI.
\v
Соответствует символу вертикальной табуляции (VT).
Эквивалентно \x0b и \cK.
\w
Соответствует латинской букве, цифре или подчеркиванию.
Эквивалентно '[A-Za-z0-9_]'.
\W
Соответствует любому символу, кроме латинской буквы,
цифры или подчеркивания. Эквивалентно '[^A-Za-z0-9_]'.
\xn
n - шестнадцатеричное число, обязательно состоящее из двух
цифр. Соответствует символу с шестнадцатеричным кодом n.
Например, /\x41/ эквивалентно "A", '\x041' эквивалентно '\x04' & "1".
Позволяет использовать ASCII-коды в регулярных выражениях.
\num
num представлено положительным целым числом. Является
обратной ссылкой на найденные соответствия. Например, '(.)\1'
соответствует двум последовательно расположенным идентичным
символам.
\n
Определяет или восьмеричное значение или обратную ссылку.
Если \n предшествуют хотя бы n подвыражений, тогда n
66
соответствует n-ной запомненной подстроке. В обратном случае, n
соответствует символу с восьмеричным кодом n, если n
соответствует восьмеричной цифре (0-7).
\nm
Определяет или восьмеричное значение или обратную ссылку.
Если \nm предшествуют хотя бы nm подвыражений, тогда nm -
обратная ссылка. Если перед \nm располагается хотя бы n
подвыражений, тогда n - это обратная ссылка, за которой расположен
обычный символ m. Если ни одно из предыдущих условий не
выполняется, тогда \nm соответствует восьмеричному значению nm,
где n и m являются восьмеричными цифрами (0-7).
\nml
Соответствует символу с восьмеричным кодом nml, если n
является восьмеричной цифрой (0-3), а m и l являются
восьмеричными цифрами (0-7).
\un
Соответсвует n, где n является Unicode символом,
представленным четырьмя шестнадцатеричными цифрами.
Например, \u00A9 соответствует копирайт-символу ©.
Регулярные выражения создаются таким же образом, как создаются и
арифметические выражения. То есть малые выражения объединяются с
использованием разнообразных метасимволов и операторов, образуя более
крупные выражения.
Мы создаем регулярное выражение, помещая различные компоненты
образца выражения между парой разделителей. Для JScript разделителями
являются два символа косых черт (/). Например: /выражение/
Для VB разделителями является пара символов кавычек ("") . К примеру:
"выражение"
В обоих примерах, показанных выше, образец регулярного выражения
(выражение) хранится в свойстве Pattern объекта RegExp.
Компонентами регулярного выражения могут быть индивидуальные
символы, наборы символов, диапазоны символов, выборы между символами, а
также любая комбинация из этих компонентов.
67
Cозданное нами регулярное выражение будет выполняться весьма
подобным на обычное арифметическое выражение образом, то есть оно будет
выполняться слева направо и следовать порядку старшинства.
Следующая таблица иллюстрирует, от высшего к низшему, порядок
старшинства различных операторов регулярных выражений:
Оператор(ы)
\
(), (?:), (?=), []
*, +, ?, {n}, {n,}, {n,m}
^, $, \любойметасимвол
|
Обычные символы включают в себя все печатные и непечатные
символы, которые явным образом не обозначены как метасимволы. Сюда
входят все алфавитные символы верхнего и нижнего регистра, все цифры, все
знаки препинания, а также некоторые специальные символы.
Самая простая форма регулярного выражения обычный одиночный
символ, который соответствует сам себе в исследуемой строке. Например,
образец из одного символа 'W' будет соответствовать букве 'W' где бы она не
находилась в строке, в которой будет произведен поиск. Вот несколько
примеров регулярных выражений из одного символа
"a"
"7"
"M"
Мы можем объединять вместе множество одиночных символов для
формирования бОльшего выражения. Например, следующее регулярное
выражение не более чем выражение, созданное объединением с
односимвольных выражений 'a', '7', и 'М'.
"a7M"
Тут нет никакого оператора конкатенации. Все, что требуется - это
только чтобы мы поместили символы один за одним.
Существует несколько метасимволов, которые требуют специальной
обработки при попытке задать им соответствие. Чтобы задать соответствие
68
самим этим символам, Вы должны сформировать escape-последовательность,
используя для этого символ обратной черты (\). Следующая таблица
демонстрирует такие специальные символы и то значение, которое они несут:
Специальн
ый символ
Комментарий
$
Соответствует позиции в конце входной строки. Если
свойство Multiline объекта RegExp имеет значение True, $ также
соответствует позиции, предшествующей '\n' или '\r'. Для того
чтобы задать соответствие самому символу $, нужно
использовать \$.
( )
Помечает начало и конец подвыражения. Такие под(или
суб-)выражения могут быть сохранены для дальнейшего их
использования. Для соответствия непосредственно самим этим
символам, используйте \( и \).
*
Соответствует повторению предшествующего
подвыражения 0 или более раз. Чтобы задать соответствие
самому символу *, используйте \*.
+
Соответствует повторению предшествующего
подвыражения 1 или более раз. Чтобы соответствовать самому
символу +, используйте \+.
.
Соответствует любому одиночному символу, за
исключением символа новой строки \n. Для соответствия .
используйте \.
[
Помечает начало символьного диапазона, размещенного в
квадратных скобках. Для соответствия [ используйте \[.
?
Соответствует повторению предшествующего
подвыражения 0 или 1 раз или является индикатором
"нежадности" выражения. Для соответствия символу ?
используйте \?.
69
\
Помечает следующий за ним символ или как
специальный, как букву(литерал), как обратную ссылку или как
восьмеричную escape-последовательность. Например, 'n'
соответствует символу 'n', а '\n' соответствует символу новой
строки. Последовательность '\\' соответствует "\", '\('
соответствует "(".
^
Соответствует позиции в начале входной строки, за
исключением случаев использования данного символа в
выражениях, помещенных в квадратные скобки, где он тогда
отрицает стоящий за ним набор символов. Для указания
соответствия самому символу ^ используйте \^.
{
Помечает начало выражения-квантификатора. Для
соответствия самому символу { используйте \{.
|
Указывает на выбор между двумя элементами. Чтобы
соответствовать самому символу | используйте \|.
Существует несколько полезных непечатных символов, которые при
случае следует использовать. Следующая таблица показывает escape-
последовательности, используемые для представления таких непечатных
символов:
Символ
Значение
\cx
Соответствует управляющему коду, указанному в x.
Например, \cM соответствует коду Control-M или символу
возврата каретки. Значение x должно находится в диапазоне A-
Z или a-z. Если это условие не выполняется, тогда c будет
считаться обычным символом 'c'.
\f
Соответствует символу подачи бланка. Эквивалентно \x0c
и \cL.
\n
Соответствует символу перевода строки. Эквивалентно
\x0a и \cJ.
70
\r
Соответствует символу возврата каретки. Эквивалентно
\x0d и \cM.
\s
Соответствует любому пробельному символу, включая
пробел, табулятор, символ подачи бланка, и т.д. Эквивалентно
[\f\n\r\t\v].
\S
Соответствует любому непробельному символу.
Эквивалентно [^ \f\n\r\t\v].
\t
Соответствует символу табуляции. Эквивалентно \x09 и
\cI.
\v
Соответствует символу вертикальной табуляции.
Эквивалентно \x0b и \cK.
Точка (.) соответствует в строке любому одиночному печатному или
непечатному символу, за исключением символа новой строки (\n). Следующее
регулярное выражение для JScript соответствует 'aac', 'abc', 'acc', 'adc' и т.п. так
же как и 'a1c', 'a2c', 'a-c' и 'a#c':
"a.c"
Если же Вы пытаетесь задать соответствие строке, содержащей имя
файла, где точка (.) является частью входной строки, Вы делаете это предварив
точку в регулярном выражении символом обратной черты (\). Иллюстрирует
это следующее регулярное выражение:
"filename\.ext"
Эти выражения все еще являются довольно ограниченными. Они
допускают соответствие только любому одиночному символу. Часто более
востребованным будет соответствие определенным символам из списка.
Например, если у Вас есть входной текст, который содержит заголовки глав,
которые выражены в цифровой форме как Chapter 1, Chapter 2 и т.д, Вы могли
бы захотеть найти эти заголовки.
Выражения в скобках
Мы можем создать список символов соответствия, заключив один и
более символов в квадратные скобки ([ и ]). Когда символы заключаются в
скобки, то такой список называется bracket expression. В пределах скобок, как и
71
везде, обычные символы представляют самих себя, то есть они соответствуют
нахождению себя же во входном тексте. Большинство специальных символов
теряют свое значение, когда они встречаются внутри выражений в скобках. Вот
некоторые исключения:
Символ ']' завершает список, если только он не является первым
элементом списка. Чтобы в списке задать соответствие самому символу ']',
разместите его первым , непосредственно за открывающей скобкой '['.
Символ '\' продолжает быть символом escape-последовательности.
Чтобы задать соответствие самому символу '\' , используйте '\\'.
Список символов, заключенных в квадратные скобки , соответствует
только одному символу в том месте регулярного выражения, где находятся эти
квадратные скобки. Следующее регулярное выражение соответствует 'Chapter
1', 'Chapter 2', 'Chapter 3', 'Chapter 4' и 'Chapter 5':
:
"Chapter [12345]"
Слово 'Chapter' и пробел, следующий за ним, находятся в
фиксированной позиции относительно символов, заключенных в скобки. То
есть данное выражение в скобках используется только для задания набора
символов, соответствующих одиночному символу в позиции непосредственно
следующей за пробелом после слова 'Chapter'. Это позиция девятого символа.
Если же мы хотите выразить символы соответствия, используя диапазон
символов вместо непосредственно самих символов, в этом случае мы можем
отделить начальный и конечный символы, используя символ дефиса (-) .
Значения индивидуальных символов в диапазоне определяется их
относительным порядком внутри диапазона. Следующее регулярное выражение
содержит диапазон, который является полным эквивалентом списка в скобках,
показанного выше: "Chapter [1-5]"
Когда диапазон определяется таким манером, и начальное и конечное
значения включаются в диапазон. Важно отметить, что начальное значение
должно стоять впереди конечного (имеется ввиду порядок сортировки Unicode).
72
Если мы хотим включить символ дефиса в выражение в скобках, тогда
Вам потребуется поступить одним из следующих способов:
1. Предварим его символом обратной черты (escape-символом): [\-]
2. Поместим символ в начало или конец выражения в скобках.
Следующие выражения соответствуют всем латинским буквам в нижнем
регистре и дефису: [-a-z] [a-z-]
3. Создаем диапазон в котором значение начального символа будет
меньше значения символа дефиса и конечный символ равен или больше, чем
значение дефиса. Оба следующих выражения удовлетворяют этому условию:
[!--] [!-~]
Мы также можем найти все символы не находящиеся в списке или не
входящие в диапазон, поместив в начало списка символ каретки (^) . Если же
символ каретки будет находиться в любой другой позиции внутри списка, тогда
он будет соответствовать сам себе, то есть не будет иметь специального
значения. Следующее регулярное выражение соответствует заголовкам,
имеющим номера более чем 5: "Chapter [^12345]"
В примерах, показанных выше, выражение соответствует любой цифре в
девятой позиции, за исключением 1, 2, 3, 4 или 5. Например, соответствует
'Chapter 7' , так же как и 'Chapter 9'.
Эти выражения выше также могут быть представлены с использованием
символа дефиса (-). "Chapter [^1-5]"
Типичным использованием выражений в квадратных скобках является
задание соответствия любым символам латинского алфавита в любом регистре
или любым цифрам. Следующее регулярное выражение определяет именно
такое соответствие: "[A-Za-z0-9]"
Иногда заранее неизвестно, сколько именно символов должны
соответствовать. Чтобы приспособиться к такому виду неопределенности,
регулярные выражения поддерживают концепцию квантификаторов.
Квантификаторы позволяют Вам определять сколько раз данный компонент

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)