Comprendre les barres obliques inverses dans les expressions régulières
Les expressions régulières utilisent la barre oblique inverse () à des fins spéciales, améliorant ainsi les capacités de correspondance. Cependant, une confusion survient lorsque plusieurs barres obliques inverses apparaissent successivement.
Selon la documentation Python, la barre oblique inverse agit comme un caractère d'échappement, vous permettant de faire correspondre littéralement les caractères spéciaux. Par exemple, d représente n'importe quel chiffre décimal.
Pour éviter que ces métacaractères ne soient interprétés, faites-les précéder d'une barre oblique inverse. Par exemple, [ correspond à un littéral [ et correspond à un littéral , car la barre oblique inverse annule leurs significations particulières.
Cependant, le code suivant renvoie de manière inattendue None :
<code class="python">print(re.search('\d', '\d'))</code>
Ce problème provient de Python. double interprétation des barres obliques inverses. Tout d'abord, il analyse et remplace le d dans « d » par un chiffre décimal (via sa séquence d'échappement d). Ainsi, « d » contient désormais un chiffre décimal, et non le caractère « d » auquel nous avions l'intention de correspondre.
Pour corriger cela, échappez la barre oblique inverse dans l'expression régulière :
<code class="python">print(re.search('\\d', '\d'))</code>
Ceci garantit que le caractère « d » dans « d » correspond littéralement, car « » représente une véritable barre oblique inverse due à une fuite dans la chaîne.
En résumé, lorsque vous utilisez des barres obliques inverses dans des expressions régulières, sachez que Python interprète eux à plusieurs niveaux. Échappez aux barres obliques inverses dans l'expression régulière en utilisant pour faire correspondre littéralement les caractères spéciaux.
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!