re.search(pattern, string) Trouvez la première partie correspondante de la chaîne
Le r au début du modèle signifie une chaîne brute et une barre oblique inverse est passée à la recherche telle quelle.
In [11]: import re
In [12]: str = 'Less but better'
In [13]: match = re.search(r'\s\w\w\w\s',str)
In [14]: print 'found:', match.group()
found:  but 
S'il n'y a pas de chaîne de caractères correspondante, elle sera renvoyée comme None, donc vérifiez-la avec l'instruction if.
str = 'Less but better'
match = re.search(r'\s\w\w\w\s',str)
if match:
    print 'found:', match.group()
else:
    print 'Not found'
re.findall(pattern, string) Renvoie toutes les correspondances
str = 'He who moves not forward, goes backward.'
matches = re.findall(r'\w{3}', str)
Sortez 3 personnages. Recherchez le suivant qui correspond.
In [15]: print matches
['who', 'mov', 'not', 'for', 'war', 'goe', 'bac', 'kwa']
Si vous souhaitez extraire uniquement les mots, procédez comme suit.
In [16]: matches = re.findall(r'\w+', str)
In [17]: matches
Out[17]: ['He', 'who', 'moves', 'not', 'forward', 'goes', 'backward']
re.match(pattern, string) Vérifiez si elle correspond à l'expression régulière du début de la chaîne
In [133]: str = 'Information is not knowledge.'
In [134]: match = re.match(r'I',str, re.M|re.I)
In [135]: print match
<_sre.SRE_Match object at 0x0000000018D774A8>
In [136]: print match.group()
I
In [137]: match = re.match(r'i',str)
In [138]: print match
None
| Expressions régulières | sens | 
|---|---|
| a,A,9 | Correspond-il au caractère spécifié? | 
| . | Un caractère autre que le saut de ligne | 
| \w | lettre(a-zA-Z0-9) | 
| \W | Autre que les lettres | 
| \s | Caractère vierge(space,tab,return) | 
| \S | Autres que les caractères blancs | 
| \d | Nombres(0-9) | 
| \t | languette | 
| \n | newline | 
| \r | return | 
| \b | Délimiteur de caractères"xxxx"Double citation. Ne correspond pas sauf s'il entoure le caractère | 
| ^ | Le début de la chaîne | 
| $ | La fin de la chaîne | 
| |Annulation des caractères spéciaux | 
[ ] [] Représente un jeu de caractères. [abc] signifie a ou b ou c.
| Expressions régulières | sens | 
|---|---|
| * | Répétez 0 fois ou plus | 
| + | Répétez une ou plusieurs fois | 
| ? | Répétez 0 ou 1 fois | 
| {n} | Répéter n fois | 
group Il peut être transformé en groupe en le plaçant entre (), et une partie de la partie correspondante peut être retirée.
str = 'Change before you have to.' 
match = re.search(r'(\w+)\s(\w+)\s(\w+)\s(\w+)\s([\w.]+)',str)
if match:
    print 'found:', match.group()
else:
    print 'Not found'
group () ... partie correspondante groupes () ... divisés en groupes group (n) ... Extraire le nième groupe. Le tout premier est le groupe (1).
In [15]: print match.group()
Change before you have to.
In [16]: print match.groups()
('Change', 'before', 'you', 'have', 'to.')
In [17]: print match.group(1)
Change
Lors de l'utilisation de groupe avec findall
In [18]: matches = re.findall(r'(\w+):(\d+)',str)
In [19]: matches
Out[19]: [('aaa', '111'), ('bbbb', '2222'), ('ccccc', '33333')]
Ici ou Ici [Ici] J'ai fait référence à (http://www.tutorialspoint.com/python/python_reg_expressions.htm)
Recommended Posts