Опубликован: 14.06.2015 | Доступ: свободный | Студентов: 5889 / 712 | Длительность: 09:49:00
Авторские права: Creative Commons Attribution 3.0
Самостоятельная работа 11:

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

< Самостоятельная работа 1 || Самостоятельная работа 11: 12345

23.4. Символ "Escape"

Поскольку мы используем специальные символы в регулярных выражениях для указания начала или конца строки и подстановки произвольного символа, нам необходим также способ указать, что эти символы в отдельных случаях используются как "нормальные", чтобы просто сопоставить их с обычными символами, такими как доллар "$" или крышка "^".

Это можно сделать, поставив перед защищаемым символом обратную косую черту "\" (backslash). Например, можно найти обозначения денежных сумм с помощью следующего регулярного выражения:

import re
x = 'We just received $10.00 for cookies.'
y = re.findall('\$[0-9.]+',x)
  

Поскольку мы поставили обратную косую черту перед знаком доллара, он будет сопоставляться с реальным символом доллара во входной строке, вместо того, чтобы обозначать конец входной строки; оставшаяся часть регулярного выражения сопоставляется с одной или более цифрой или точкой.

Замечание: символы внутри квадратных скобок не считаются специальными. Когда мы пишем "[0-9.]", это действительно означает цифру или точку. Вне квадратных скобок точка означает подстановку произвольного символа. Внутри них точка означает точку.

23.5. Выводы

Пока мы лишь затронули тематику регулярных выражений, познакомившись с языком задания регулярных выражений. Они представляют собой шаблоны поиска, включающие специальные символы. С помощью регулярных выражений мы определяем задание для поисковой системы – что именно мы хотим найти и что извлечь из найденных строк. Ниже приведены некоторые специальные символы и специальные последовательности:

^

Соответствует началу строки.

$

Соответствует концу строки.

.

Соответствует любому символу (символ подстановки, wildcard).

\s

Соответствует пробельному символу (whitespace).

\S

Соответствует непробельному символу (противоположен \s).

*

Действует на непосредственно предшествующий символ и соответствует цепочке из нуля или более предшествующих символов.

*?

Действует на непосредственно предшествующий символ и соответствует цепочке из нуля или более предшествующих символов, выделенной в "нежадном" режиме.

+

Действует на непосредственно предшествующий символ и соответствует цепочке из одного или более предшествующих символов.

+?

Действует на непосредственно предшествующий символ и соответствует цепочке из одного или более предшествующих символов, выделенной в "нежадном" режиме.

[aeiou]

Соответствует одному символу из указанного набора. В данном примере может сопоставляться символам "a", "e", "i", "o", "u" и никаким другим.

[a-z0-9]

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

[^A-Za-z]

Если первым символом в обозначении набора является крышка "^", то смысл обозначения меняется на обратный – любой символ, не входящий в указанный набор. В данном примере задается один символ, не являющийся прописной или строчной буквой.

( )

Круглые скобки в регулярном выражении игнорируются при сопоставлении строки и регулярного выражения, но позволяют извлечь указанную в скобках часть строки вместо всей строки при использовании метода findall().

\b

Соответствует пустой подстроке в начале или конце слова.

\B

Соответствует пустой подстроке всюду, за исключением начала или конца слова.

\d

Соответствует десятичной цифре; эквивалентно выражению [0-9].

\D

Соответствует любому символу, отличному от десятичной цифры; эквивалентно выражению [^0-9].

< Самостоятельная работа 1 || Самостоятельная работа 11: 12345
Инесса Воробьева
Инесса Воробьева

Я записалась на курсы, но я опасаюсь отправлять копию паспорта. Я не уверена, что она не попадёт в чужие руки. Скажите, пожалуйста, какая у Вас степень защиты документов?

Николай Анищенко
Николай Анищенко

Первая лекция, первая блок-схема, и нате вам. ЦПУ и оперативка объеденены в единый блок. Ну это ладно, то блок этот софтваре! С каких это пор, ЦПУ и оперативка стали софтом?

Александр Мигунов
Александр Мигунов
Россия