Python >> Tutoriel Python >  >> Python

Remplacer tout le texte entre 2 chaînes python

Vous avez besoin de Regular Expression :

>>> import re
>>> re.sub('\nThis.*?ok','',a, flags=re.DOTALL)
' Example String'

Le drapeau DOTALL est la clé. Normalement, le '.' Le caractère ne correspond pas aux sauts de ligne, vous ne faites donc pas correspondre les lignes d'une chaîne. Si vous définissez l'indicateur DOTALL, re correspondra à '.*' sur autant de lignes que nécessaire.


Une autre méthode consiste à utiliser des séparations de chaînes :

def replaceTextBetween(originalText, delimeterA, delimterB, replacementText):
    leadingText = originalText.split(delimeterA)[0]
    trailingText = originalText.split(delimterB)[1]

    return leadingText + delimeterA + replacementText + delimterB + trailingText

Limites :

  • Ne vérifie pas si les délimiteurs existent
  • Suppose qu'il n'y a pas de délimiteurs en double
  • Suppose que les délimiteurs sont dans le bon ordre