$ et le symbole ^Le symbole ^ au début d'une regex indique que la correspondance
doit se produire au début du texte cherché.
De la même façon, vous pouvez mettre un symbole $ à la fin de la
regex pour indiquer que la chaîne doit finir avec cette regex.
import re
startWithWhy = re.compile(r'^Why')
print(startWithWhy.search('Why are you learning Python?'))
if startWithWhy.search('Do you know why?') == None:
print("There is no 'Why' at the beginning!")
La regex r'\d$' correspond aux chaînes finissant avec un chiffre.
import re
finishWithDigit = re.compile(r'\d$')
print(finishWithDigit.search('We are in 2018'))
if finishWithDigit.search('You are twenty one') == None:
print('There is no digit')
La regex r'^\d+$' correspond aux chaînes qui commencent et
finissent par un nombre.
import re
onlyNumbers = re.compile(r'^\d+$')
print(onlyNumbers.search('1234567890'))
if onlyNumbers.search('12345xyz67890') == None:
print('There are others characters, not only numbers')
if onlyNumbers.search('12 34567890') == None:
print("A space is a character, and it's not a digit")
Le . dans une regex est appelé joker et peut correspondre à
n'importe quel caractère sauf une nouvelle ligne.
import re
atRegex = re.compile(r'.at')
print(atRegex.findall('The fat cat in the hat sat on the flat mat.'))
paraRegex = re.compile(r'para.')
para = """
Les jeux paraolympiques sous la pluie nécessitent des parapluies,
des parachutes et/ou des parapentes et beaucoup de parapharmacie
pour les paraplégiques.
Et un paratonnerre évitera de se faire paralyser les systèmes
parasympathique animé par des paraboles pleines de paramètres.
"""
print(paraRegex.findall(para))
import re
nameRegex = re.compile(r'First Name: (.*) Last Name: (.*)')
mo = nameRegex.search('First Name: James Last Name: Bond')
print(mo.group(1))
print(mo.group(2))
Par défaut le combo .* est en mode glouton.
import re
nongreedyRegex = re.compile(r'<.*?>')
mo = nongreedyRegex.search('<To serve man> for dinner.>')
print(mo.group())
greedyRegex = re.compile(r'<.*>')
mo = greedyRegex.search('<To serve man> for dinner.>')
print(mo.group())
Nous avons vu dans ce cours :