Dans le codage quotidien, nous avons souvent besoin de modifier et de reconstruire le code pour augmenter la lisibilité et la maintenabilité du code. Les expressions régulières sont l’un des outils importants. Cet article présentera quelques techniques courantes sur la façon d'utiliser les expressions régulières Python pour la refactorisation du code.
1. Rechercher et remplacer
L'une des fonctions les plus couramment utilisées des expressions régulières est la recherche et le remplacement. Supposons que nous devions remplacer toutes les instructions d'impression du code par des instructions de journalisation. Nous pouvons utiliser l'expression régulière suivante pour rechercher :
prints*((.*))
Cette expression régulière peut correspondre aux instructions du formulaire print(…) et capturer le contenu entre parenthèses en tant que sous-groupe. Ensuite, nous pouvons utiliser le module re de Python pour effectuer l'opération de remplacement :
import re pattern = r'prints*((.*))' replacement = r'logging.info()' code = 'print("hello, world")' refactored_code = re.sub(pattern, replacement, code) print(refactored_code)
Le résultat de sortie est :
logging.info("hello, world")
Comme le montre cet exemple, l'utilisation d'expressions régulières peut facilement refactoriser le code. Cette méthode est meilleure que la recherche manuelle et. le remplacement est plus efficace.
2. Diviser et fusionner des chaînes
Une autre tâche courante de refactorisation de code consiste à diviser et à fusionner des chaînes. Par exemple, nous devons convertir une chaîne « pomme, banane, orange » en une liste ['pomme', 'banane', 'orange']. Nous pouvons utiliser l'expression régulière suivante pour les opérations de fractionnement et de correspondance :
import re pattern = r'(w+)' code = "apple,banana,orange" result = re.findall(pattern, code) print(result)
Le résultat de sortie est :
['apple', 'banana', 'orange']
Cette expression régulière peut faire correspondre un ou plusieurs caractères dans un mot et trouver tous ces mots dans la chaîne, renvoie une liste. De même, nous pouvons utiliser la méthode join de Python pour fusionner une liste en une chaîne :
import re pattern = r'(w+)' code = "apple,banana,orange" result = re.findall(pattern, code) refactored_code = ','.join(result) print(refactored_code)
Le résultat de sortie est :
apple,banana,orange
Cette méthode peut être appliquée à un traitement de chaîne plus complexe, tel qu'une expression régulière correspondant à un contenu XML ou une balise dans le Document HTML, qui est ensuite traité ultérieurement.
3. Extraction et reconstruction de blocs de code
Pour certaines bases de code volumineuses, nous devrons peut-être extraire et reconstruire certains blocs de code. Ceci peut également être réalisé en utilisant des expressions régulières. Par exemple, nous devons extraire un bloc de code contenant plusieurs fonctions et l'enregistrer dans un fichier séparé. Nous pouvons utiliser l'expression régulière suivante pour faire correspondre le bloc de code :
import re pattern = r'def (.+):s+(.*)' code = ''' def foo(): print("foo") def bar(): print("bar") ''' # 使用正则表达式匹配 def 语句和它的下面的代码块 matches = re.findall(pattern, code, flags=re.DOTALL) # 将提取出来的代码块进行处理 new_code = " ".join(["def " + match[0] + ": " + match[1].replace(' ', ' ') for match in matches]) print(new_code)
Le résultat de sortie est :
def foo(): print("foo") def bar(): print("bar")
Cette expression régulière peut correspondre aux définitions de fonction commençant par "def xxx() :" et utiliser le corps de la fonction comme sous-groupes sont capturés. avec le nom de la fonction. Enfin, nous pouvons concaténer toutes les définitions de fonctions correspondantes dans un bloc de texte avec des nouvelles lignes.
Résumé
Cet article présente quelques techniques courantes sur la façon d'utiliser les expressions régulières Python pour la refactorisation de code, notamment la recherche et le remplacement, le fractionnement et la fusion de chaînes, l'extraction et la refactorisation de blocs de code, etc. Les expressions régulières sont un outil puissant qui peut nous aider à refactoriser le code plus efficacement et à améliorer la maintenabilité et la lisibilité du code. La maîtrise de l'utilisation des expressions régulières deviendra l'une des compétences indispensables de tout programmeur 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!