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