# regex



```python
.     Le point correspond à n'importe quel caractère.
^     Indique un commencement de segment mais signifie aussi "contraire de"
$     Fin de segment
[xy]  Une liste de segment possibble. Exemple [abc] équivaut à : a, b ou c
(x|y) Indique un choix multiple type (ps|ump) équivaut à "ps" OU "UMP" 
\d    le segment est composé uniquement de chiffre, ce qui équivaut à [0-9].
\D    le segment n'est pas composé de chiffre, ce qui équivaut à [^0-9].
\s    Un espace, ce qui équivaut à [ \t\n\r\f\v].
\S    Pas d'espace, ce qui équivaut à [^ \t\n\r\f\v].
\w    Présence alphanumérique, ce qui équivaut à [a-zA-Z0-9_].
\W    Pas de présence alphanumérique [^a-zA-Z0-9_].
\     Est un caractère d'échappement
\t\n\r	Tab, newline, retour
```

##### Nombre d'occurrences:

```python
A{2}     : on attend à ce que la lettre A (en majuscule) se répète 2 fois consécutives.
BA{1,9}  : on attend à ce que le segment BA se répète de 1 à 9 fois consécutives.
BRA{,10} : on attend à ce que le segment BRA ne soit pas présent du tout ou présent jusqu'à 10 fois consécutives.
VO{1,}   : on attend à ce que le segment VO soit présent au mois une fois.
```



| Symbole | Nb caractères attendus | Exemples  |
| ------- | ---------------------- | --------- |
| ?       | 0 ou 1                 | Pyt(.)?on |
| +       | 1 ou plus              | Pyt(.)+on |
| *       | 0, 1 ou plus           | Pyt(.)*on |



##### Fonction match():

```python
re.match(pattern, string, flags = 0)
```

```python
import re

>>> x = re.match(r"Py(.)?hon", "Python")
>>> x
<re.Match object; span=(0, 6), match='Python'>

>>> x = re.match(r"Py(.)?hon", "Pithon")
>>> x
```



Fonction search():

```python
re.search(pattern, string, flags = 0)
```



Options flags:

|      | Description |
| ---- | ----------- |
| 1    | re.I        |
| 2    | re.L        |
| 3    | re.M        |
| 4    | re.S        |
| 5    | re.U        |
| 6    | re.X        |



Fonction sub():

```python
re.sub(pattern, repl, string, max=0)
```

