re.sub
En combat réel, nous avons souvent besoin de remplacer des caractères dans une chaîne. À ce stade, nous pouvons utiliser la fonction def sub(pattern, repl, string, count=0, flags=0) re.sub a cinq paramètres au total. . Trois des paramètres requis : motif, repl, chaîne ; deux paramètres facultatifs : nombre, drapeaux
Les significations spécifiques des paramètres sont les suivantes :
Paramètre | Description |
pattern | . Indique la chaîne de modèle dans l'expression régulière |
repl | repl, qui est remplacement, la signification de la chaîne remplacée |
string | signifie la chaîne à traiter et à remplacer |
count | For les résultats correspondants dans le modèle, le nombre peut contrôler le remplacement des premiers groupes |
drapeaux | Modificateur d'expression régulière |
Pour un usage spécifique, veuillez voir l'exemple ci-dessous, commentez Tout est écrit très clairement. La principale chose à noter est que le deuxième paramètre peut être transmis à une fonction. C'est également la puissance de cette méthode. Par exemple, la fonction convert dans l'exemple juge les caractères transmis à remplacer par des caractères différents.
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- import re a = 'Python*Android*Java-888' # 把字符串中的 * 字符替换成 & 字符 sub1 = re.sub('\*', '&', a) print(sub1) # 把字符串中的第一个 * 字符替换成 & 字符 sub2 = re.sub('\*', '&', a, 1) print(sub2) # 把字符串中的 * 字符替换成 & 字符,把字符 - 换成 | # 1、先定义一个函数 def convert(value): group = value.group() if (group == '*'): return '&' elif (group == '-'): return '|' # 第二个参数,要替换的字符可以为一个函数 sub3 = re.sub('[\*-]', convert, a) print(sub3)
Le résultat de sortie :
Python&Android&Java-888 Python&Android*Java-888 Python&Android&Java|888