Computer Code Python CCP 20 : expressions régulières 7
Table of Contents
- Correspondre des nouvelles lignes avec le caractère
. - Récapitulatif des symboles des regex
- Correspondance sensible à la casse
- Bilan
- Pour aller plus loin
Correspondre des nouvelles lignes avec le caractère .
Le combo .* pourra correspondre à tout sauf à une nouvelle
ligne. En passant re.DOTALL comme second argument de
re.compile(), vous pourrez faire correspondre le . avec tous
les caractères, incluant le caractère de nouvelle ligne.
import re
noNewlineRegex = re.compile('.*')
print(noNewlineRegex.search('Liberté.\nEgalité.\nFraternité.').group())
print('-' * 30)
newlineRegex = re.compile('.*', re.DOTALL)
print(newlineRegex.search('Liberté.\nEgalité.\nFraternité.').group())
Récapitulatif des symboles des regex
| `?` | 0 ou 1 occurrence du groupe le précédent |
| `*` | 0 ou plusieurs occurrences |
| `+` | au moins une occurrence |
| `{n}` | exactement *n* occurrences |
| `{n, }` | *n* ou plus occurrences |
| `{, m}` | de 0 à *m* occurrences |
| `{n,m}` | au moins *n* et au plus *m* occurrences |
| `*?` | version non gloutonne de `*` |
| `+?` | version non gloutonne de `+` |
| `{n,m}?` | version non gloutonne de `{n,m}` |
| `^test` | signifie que la chaîne doit commencer par *test* |
| `test$` | signifie que la chaîne doit finir par *test* |
| `.` | correspond à n'importe quel caractère (sauf `\n`) |
| `\d` | correspond à 1 chiffre |
| `\w` | correspond à 1 mot |
| `\s` | correspond à 1 espace |
| `\D` | tout sauf 1 chiffre |
| `\W` | tout sauf 1 mot |
| `\S` | tout sauf 1 espace |
| `[abc]` | correspond à tout caractère entre crochets |
| `[^abc]` | correspond à tout caractère qui n'est pas entre crochets |
Correspondance sensible à la casse
Normalement, les regex correspondent au texte avec la casse
précisée.
import re
regex1 = re.compile('Bonjour')
print(regex1.search('Bonjour les apprentis pythoniens.').group())
regex2 = re.compile('BONJOUR')
if regex2.search('Bonjour les apprentis pythoniens.') == None:
print('no match')
regex3 = re.compile('bonjour')
if regex3.search('Bonjour les apprentis pythoniens.') == None:
print('no match')
Mais parfois vous voulez simplement la correspondance avec les
lettres sans vous soucier de la casse.
import re
regex1 = re.compile('Bonjour', re.I)
print(regex1.search('Bonjour les apprentis pythoniens.').group())
regex2 = re.compile('BONJOUR', re.IGNORECASE)
print(regex2.search('Bonjour les apprentis pythoniens.').group())
regex3 = re.compile('bonjour', re.I)
print(regex3.search('Bonjour les apprentis pythoniens.').group())
Bilan
Nous avons vu dans ce cours :
- Comment correspondre des nouvelles lignes avec le caractère
. - Un récapitulatif des symboles des regex
- La gestion de la casse
Pour aller plus loin
- La vidéo sur YouTube : https://youtu.be/dWCDBc-rH_o
- La version HTML sur GitHub
- La formation pour apprendre à coder une blockchain avec Python :
ACBP - La formation pour découvrir les technologies blockchain : CDBSSR
- La formation pour devenir full stack developer : FSD
- Le pack avec un paiement en 10 fois :
https://cours-laurent.systeme.io/pack-3-formations-10-fois
@lgsp, I gave you a vote!
If you follow me, I will also follow you in return!