Maison >développement back-end >Tutoriel Python >Pourquoi un préfixe r n'est-il pas toujours requis pour les regex en Python ?

Pourquoi un préfixe r n'est-il pas toujours requis pour les regex en Python ?

DDD
DDDoriginal
2024-10-19 17:08:30484parcourir

Why is an r prefix not always required for regex in Python?

Regex Python - préfixe r

Certains peuvent se demander pourquoi l'expression régulière suivante fonctionne, même sans le préfixe r :

<code class="python">import re
print (re.sub('\s+', ' ', 'hello     there      there'))</code>

C'est généralement Je pensais que le préfixe r est requis chaque fois que des séquences d'échappement sont utilisées, mais cet exemple semble contredire cela.

Séquences d'échappement et chaînes brutes

Le préfixe r est utilisé pour créer une "chaîne brute" , ce qui signifie que les séquences d'échappement dans la chaîne ne seront pas interprétées comme des caractères spéciaux. Cela peut être utile lorsque vous souhaitez utiliser un caractère qui est normalement interprété comme une séquence d'échappement, comme la barre oblique inverse ().

Dans l'exemple ci-dessus, la séquence d'échappement s est utilisée pour faire correspondre un ou plusieurs espaces. personnages. Sans le préfixe r, cette séquence d'échappement serait interprétée comme un caractère de tabulation (t). Cependant, comme le préfixe r est utilisé, la séquence d'échappement est interprétée littéralement et correspond à un ou plusieurs caractères d'espacement.

Exceptions à la règle

Il existe quelques exceptions à la règle selon laquelle les séquences d'échappement doit être utilisé avec le préfixe r. Une exception est la séquence d'échappement n, qui est utilisée pour représenter un caractère de nouvelle ligne. Cette séquence d'échappement peut être utilisée sans le préfixe r, comme le montre l'exemple suivant :

<code class="python">print '\n'</code>

Une autre exception est la séquence d'échappement \, qui est utilisée pour représenter un caractère barre oblique inverse. Cette séquence d'échappement peut également être utilisée sans le préfixe r, comme le montre l'exemple suivant :

<code class="python">print '\'</code>

Conclusion

Le préfixe r n'est pas toujours requis lors de l'utilisation de séquences d'échappement en Python. Cependant, c'est généralement une bonne idée d'utiliser le préfixe r pour éviter toute confusion ou comportement inattendu.

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