Remarque: bien Examples provided are in Python.
que le concept reste le même.
'.'
est un symbole correspondant qui correspond à n'importe quel caractère à l'exception du caractère de nouvelle ligne (cela peut également être remplacé par un re.DOTALL
argument en Python). Par conséquent, il est également appelé Wildcard .
'*'
est un quantificateur (définit la fréquence à laquelle un élément peut se produire). Est l'abréviation de {0,} .
Cela signifie «correspondre à zéro ou plus» - le groupe qui précède l'étoile peut apparaître un certain nombre de fois dans le texte. Il peut être complètement absent ou répété encore et encore.
'?'
est également un quantificateur . Est l'abréviation de {0,1} .
Cela signifie «Correspond à zéro ou à l'un des groupes précédant ce point d'interrogation». Il peut également être interprété comme la partie précédant le point d'interrogation est facultative .
par exemple:
pattern = re.compile(r'(\d{2}-)?\d{10}')
mobile1 = pattern.search('My number is 91-9999988888')
mobile1.group()
Output: '91-9999988888'
mobile2 = pattern.search('My number is 9999988888')
mobile2.group()
Output: '9999988888'
Dans l'exemple ci-dessus '?' indique que les deux chiffres qui le précèdent sont facultatifs. Ils peuvent ne pas se produire ou se produire au maximum une fois.
Différence entre '.' et '?':
'.'
correspond / accepte / vérifie tout caractère unique pour la place qu'il tient dans l'expression régulière.
par exemple:
pattern = re.compile(r'.ot')
pattern.findall('dot will identify both hot and got.')
Output: ['dot', 'hot', 'got']
'?'
correspond / vérifie l'occurrence nulle ou unique du groupe qui le précède .
Consultez l'exemple de numéro de mobile.
Il en va de même '*'
. Il vérifiera zéro ou plusieurs occurrences du groupe qui le précède .
Combinaison:
'.*'
: Accepte autant de séquences que disponibles. Approche gourmande .
'.*?
'Accepte la première séquence correspondante et s'arrête. Approche non gourmande
Pour plus d'informations, pensez à lire les deux questions suivantes ...