Computer Code Python CCP 20 : expressions régulières 7

in fr •  6 years ago 

Table of Contents

  1. Correspondre des nouvelles lignes avec le caractère .
  2. Récapitulatif des symboles des regex
  3. Correspondance sensible à la casse
  4. Bilan
  5. 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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

@lgsp, I gave you a vote!
If you follow me, I will also follow you in return!