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.DOTALLargument 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 ...