Maison >développement back-end >Tutoriel Python >Quand devez-vous utiliser le préfixe \'r\' dans les expressions régulières Python ?

Quand devez-vous utiliser le préfixe \'r\' dans les expressions régulières Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-19 17:07:02454parcourir

When Should You Use the 'r' Prefix in Python Regular Expressions?

Python regex - préfixe r

Le module d'expression régulière de Python prend en charge le préfixe r, ce qui signifie que la chaîne suivante doit être traité comme une chaîne brute. Ceci est particulièrement utile lorsque vous travaillez avec des séquences d'échappement, car le préfixe r empêche Python d'interpréter la barre oblique inverse comme un caractère d'échappement.

Cependant, le préfixe r est pas toujours nécessaire. Par exemple, les séquences d'échappement qui ne sont pas valides en Python seront toujours interprétées comme des séquences d'échappement même si le préfixe r n'est pas utilisé. Par exemple, dans le premier exemple :

import re
print (re.sub('\s+', ' ', 'hello     there      there'))

Le modèle d'expression régulière 's' correspond à un ou plusieurs caractères d'espacement. Le préfixe r n'est pas requis dans ce cas car la barre oblique inverse n'est pas utilisée comme caractère d'échappement (il définit simplement la plage de caractères à correspondre).

Cependant, le r Le préfixe 🎜>r

est requis lors de l'utilisation de séquences d'échappement valides en Python. Par exemple, dans le deuxième exemple :
import re
print (re.sub(r'(\b\w+)(\s+\b)+', r'', 'hello     there      there'))

Le modèle d'expression régulière r'(bw )(s 1b) ' correspond à un mot qui est répété au moins une fois avec des espaces entre les deux. Le préfixe r

est requis dans ce cas car la barre oblique inverse est utilisée comme caractère d'échappement pour définir les limites du mot.

Enfin, le préfixe r

n'est pas toujours requis si une chaîne brute est utilisée. Par exemple, le troisième exemple est équivalent au deuxième exemple :
import re
print (re.sub('(\b\w+)(\s+\b)+', '', 'hello     there      there'))

Dans ce cas, le préfixe r

n'est pas utilisé, mais le modèle d'expression régulière est toujours traité comme un chaîne brute. En effet, la chaîne entière littérale est entourée de guillemets simples, ce qui désigne une chaîne brute en Python.

En conclusion, le préfixe r

n'est pas toujours nécessaire, mais il est recommandé lors de l'utilisation séquences d'échappement valides en Python.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn