regexp Flashcards

1
Q

regexp.compile(pattern, flags=0)

A

method is used to compile a regular expression pattern provided as a string into a regex pattern object ( re. Pattern ). Later we can use this pattern object to search for a match inside different target strings using regex methods such as a match() or search().

pattern = re.compile("oghggee")

print(pattern.fullmatch("oghggee"))
👉 Совпадениe <re.Match object; span=(0, 7), match='oghggee'>

print(pattern.fullmatch("ogre"))
👉 Совпадений нет т.к. совпала не вся строка None

print(pattern.fullmatch("oghggee", 4, 10))
👉 Совпадение нeт.поиск ограничен None
prog = re.compile(r'(?i)[а-я]+')

print(prog)
👉 re.compile('(?i)[а-я]+', re.IGNORECASE)
p = re.compile(r'\W+')
p.split('This is a test, short and sweet, of split().')
👉 ['This', 'is', 'a', 'test', 'short', 'and', 'sweet', 'of', 'split', '']

p.split('This is a test, short and sweet, of split().', 3)
👉 ['This', 'is', 'a', 'test, short and sweet, of split().']
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

regexp.match(pattern, string, flags=0)

A

function checks the string to be matched for a pattern in the RegEx and returns the first occurrence of such a pattern match. This function only checks for a match at the beginning of the string.

print(re.match('super', 'superstition').span())
👉 (0, 5)

print(re.match('super', 'insuperable'))
👉 None
for x in range(int(input())) :
    print(bool(re.match(r"^[+-]?[0-9]*\.[0-9]+$",input())))

👉 (^[+-]{1}\d*[.]{1}[0]*[1-9]*)
m = re.match(r'(\w+)@(\w+)\.(\w+)','username@hackerrank.com')

m.groups()
👉 ('username', 'hackerrank', 'com')
m = re.match(r'(?P<user>\w+)@(?P<website>\w+)\.(?P<extension>\w+)','myname@hackerrank.com')

m.groupdict()
👉 {'website': 'hackerrank', 'user': 'myname', 'extension': 'com'}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

regexp.search(pattern, string, flags=0)

A

сканирует строку string в поисках первого совпадения с шаблоном pattern регулярного выражения и возвращает соответствующий объект соответствия. В отличии от match()ищет везде, а не только в начале.

s, k = "aaadaa", "aa"
length = len(k)

pattern = f"{[k]}" + "{" + f"{length}" + "}"
match = re.search(pattern, s)
print(re.search('super', 'superstition').span())
👉 (0, 5)

print(re.search('super', 'insuperable'))
👉 (2, 7)
#Search for an upper case "S" character in the beginning of a word, and print the word:
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
#The string property returns the search string:
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)

print(x.string)
👉 The rain in Spain
#Search for an upper case "S" character in the beginning of a word, and print its position:
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)

print(x.span())
👉 (12, 17)
print(re.search('super', 'insuperable'))
👉 (2, 7)
s = input()
m = re.search(r'([a-zA-Z0-9])\1', s)

print(m)
👉 <re.Match object; span=(11, 13), match='11'>

print(m.group(1))
👉 1
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

regexp.VERBOSE

A

Without Using VERBOSE

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

regex_email = re.compile(r'^([a-z0-9_\.-]+)@([0-9a-z\.-]+)\.([a-z\.]{2, 6})$',
              re.IGNORECASE)
   
# Using VERBOSE
regex_email = re.compile(r"""
            ^([a-z0-9_\.-]+)              # local Part
            @                             # single @ sign
            ([0-9a-z\.-]+)                # Domain name
            \.                            # single Dot .
            ([a-z]{2,6})$                 # Top level Domain  
             """,re.VERBOSE | re.IGNORECASE)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

regexp.I or regexp.IGNORECASE

A

выполняет сопоставление без учета регистра. Выражения типа [A-Z] также будут соответствовать строчным буквам.

re
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

regexp.S or regexp.DOTALL

A

делает так, что бы специальный символ ‘.’ - точка соответствовал любому символу вообще, включая новую строку ‘\n’.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

regexp.split(string [, maxsplit=0])

A

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

p = re.compile(r'\W+')
p.split('This is a test, short and sweet, of split().')
👉 ['This', 'is', 'a', 'test', 'short', 'and', 'sweet', 'of', 'split', '']

p.split('This is a test, short and sweet, of split().', 3)
👉 ['This', 'is', 'a', 'test, short and sweet, of split().']
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

regexp.sub(pattern, repl, string, count=None)

A

is used to replace substrings in strings.

a_string = "abc xxx abc xxx"
new_string = re.sub("xxx", "abc", a_string, 1)

print(new_string)
👉 abc abc abc xxx
a_string = "abc xxx abc yyy"
new_string = re.sub(r"xxx|yyy", "abc", a_string)

print(new_string)
👉 abc abc abc abc
digits_re = r'\d+'
sample = '/usr/sbin/sendmail - 0 errors, 12 warnings'

print(re.sub(digits_re, digits_re.replace('\\', r'\\'), sample))
👉 /usr/sbin/sendmail - \d+ errors, \d+ warnings
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

regexp.fullmatch()

A

возвращает соответствующий объект сопоставления если вся строка соответствует скомпилированному регулярному выражению Pattern. Метод Pattern.fullmatch() вернет None если строка не соответствует шаблону.

pattern = re.compile("oghggee")

print(pattern.fullmatch("oghggee"))
👉 Совпадениe <re.Match object; span=(0, 7), match='oghggee'>

print(pattern.fullmatch("ogre"))
👉 Совпадений нет т.к. совпала не вся строка None

print(pattern.fullmatch("oghggee", 4, 10))
👉 Совпадение нeт.поиск ограничен None
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

regexp.findall(pattern, string, flags=0)

A

Returns a list containing all matches. Строка сканируется слева направо, и совпадения возвращаются в найденном порядке. Если в шаблоне регулярного выражения присутствует одна или несколько групп, то findall() вернет список групп - это будет список кортежей, если шаблон содержит более одной группы. Пустые совпадения включаются в результат.

text = 'ул. Карпинского, дом № 20, корпус 3, квартира 98'
match = re.findall(r'\d+', text)
print(match)
👉 ['20', '3', '98']
text = 'ул. Карпинского, дом № 20, корпус 3, квартира 98'
match = re.findall(r'(?i)[а-я]+', text)
print(match)
👉 ['ул', 'Карпинского', 'дом', 'корпус', 'квартира']
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

regexp.finditer(pattern, string, flags=0)

A

возвращает итератор объектов сопоставления по всем неперекрывающимся совпадениям для шаблона регулярного выражения в строке.

text = 'ул. Карпинского, дом № 5, корпус 3, квартира 98'
match = re.finditer(r'\d+', text)

print(list(match))
# [
# <_sre.SRE_Match object; span=(25, 26), match='5'>, 
# <_sre.SRE_Match object; span=(34, 35), match='3'>, 
# <_sre.SRE_Match object; span=(45, 47), match='98'>
# ]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

regexp.match.group()

A

возвращает одну или несколько подгрупп совпадения. При наличии одного аргумента результатом будет одна строка, при наличии нескольких аргументов результатом будет кортеж с одним элементом на аргумент.

#Search for an upper case "S" character in the beginning of a word, and print the word:
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)

print(x.group())
👉 Spain
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

regexp.search.string

A

string property returns the search string

#The string property returns the search string:
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)

print(x.string)
👉 The rain in Spain
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

regexp.search.span

A

Search for an character and print its position

print(re.match('super', 'superstition').span())
👉 (0, 5)
print(re.search('super', 'superstition').span())
👉 (0, 5)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

regexp.subn

A

Perform the same operation as sub(), but return a tuple (new_string, number_of_subs_made).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

regexp.escape

A

Escape special characters in pattern. This is useful if you want to match an arbitrary literal string that may have regular expression metacharacters in it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

regexp.groups()

A

expression returns a tuple containing all the subgroups of the match.

m = re.match(r’(\w+)@(\w+).(\w+)’,’username@hackerrank.com’)
m.groups()
👉 (‘username’, ‘hackerrank’, ‘com’)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

regexp.groupdict()

A

expression returns a dictionary containing all the named subgroups of the match, keyed by the subgroup name.

m = re.match(r'(?P<user>\w+)@(?P<website>\w+)\.(?P<extension>\w+)','myname@hackerrank.com')

m.groupdict()
👉 {'website': 'hackerrank', 'user': 'myname', 'extension': 'com'}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

regexp.VERBOSE

A

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

regex_email = re.compile(r'^([a-z0-9_\.-]+)@([0-9a-z\.-]+)\.([a-z\.]{2, 6})$', re.IGNORECASE)
   
# Using VERBOSE
regex_email = re.compile(r"""
            ^([a-z0-9_\.-]+)              # local Part
            @                                   # single @ sign
            ([0-9a-z\.-]+)                 # Domain name
            \.                                    # single Dot .
            ([a-z]{2,6})$                  # Top level Domain  
             """,re.VERBOSE | re.IGNORECASE)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

regexp.I or regexp.IGNORECASE

A

выполняет сопоставление без учета регистра. Выражения типа [A-Z] также будут соответствовать строчным буквам.

prog = re.compile(r'(?i)[а-я]+')

print(prog)
👉 re.compile('(?i)[а-я]+', re.IGNORECASE)
regex_name = re.compile(r'^(Mr\.|Mrs\.|Ms\.) ([a-z]+)( [a-z]+)*( [a-z]+)*$', re.IGNORECASE)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

regexp.S or regexp.DOTALL

A

делает так, что бы специальный символ ‘.’ - точка соответствовал любому символу вообще, включая новую строку ‘\n’.

22
Q

regexp.Any character (except newline character)

A

.

23
Q

regexp.Returns a match where the string contains digits 👉 (0-9)

A

\d

24
Q

regexp.Returns a match where the string DOES NOT contain digits 👉 (not 0-9)

A

\D

25
Q

regexp.Returns a match where the string contains any word characters 👉 (a-z, A-Z, 0-9, _)

A

\w

26
Q

regexp.Returns a match where the string DOES NOT contain any word characters 👉 (not a-z, A-Z, 0-9, _)

A

\W

27
Q

regexp.Returns a match where the string contains a white space character 👉 (space, tab, newline)

A

\s

28
Q

regexp.Returns a match where the string DOES NOT contain a white space character

A

\S

29
Q

regexp.Returns a match where the specified characters are at the beginning or at the end of a word

A

\b

30
Q

regexp.Returns a match where the specified characters are present, but NOT at the beginning (or at the end) of a word

A

\B

31
Q

regexp.Starts with

A
32
Q

regexp.Ends with

A

$

33
Q

regexp.Matches Characters in brackets

A

поместить внуть тот символ что хочешь найти, если поместить больше одного символа[8ab] то каждый символ это или, или 8 или а или b

34
Q

regexp.Returns a match where one of the specified characters (a, r, or n) are present

A

[arn]

35
Q

regexp.Returns a match for any lower case character, alphabetically between a and n

A

[a-n]

36
Q

regexp.Returns a match for any character EXCEPT a, r, and n

A

[^arn]

37
Q

regexp.Returns a match where any of the specified digits (0, 1, 2, or 3) are present

A

[0123]

38
Q

regexp.Returns a match for any digit between 0 and 9

A

[0-9]

39
Q

regexp.Returns a match for any two-digit numbers from 00 and 59

A

[0-5][0-9]

40
Q

regexp.Returns a match for any character alphabetically between a and z, lower case OR upper case

A

[a-zA-Z]

41
Q

regexp.In sets, +, *, ., |, (), $,{} has no special meaning, so [+] means: return a match for any + character in the string

A

[+]

42
Q

regexp.Matches Character NOT in brackets

A

[^ ]

43
Q

regexp.Either or 👉 r|s|rs или или или

A

|

44
Q

regexp.Capture and group

A

()

45
Q

regexp.

A
46
Q

regexp.

A
47
Q

regexp.

A
48
Q

regexp.

A
49
Q

regexp.

A
50
Q

regexp.

A