Supprimer la sous-chaîne

J'ai examiné comment supprimer la sous-chaîne obtenue en utilisant re en python à partir de la chaîne d'origine, donc au lieu d'un mémo.

Les deux choses suivantes me sont venues à l'esprit

  1. Coupez et joignez les chaînes de caractères d'origine en fonction des informations de position des chaînes de caractères secondaires.
  2. Remplacez la sous-chaîne.

Si vous testez plusieurs modèles en utilisant timeit, 1 semble être plus rapide, donc j'ai adopté cela.

Le code utilisé pour le test est le suivant.

import timeit
import re


test_str = '...Quelque chose de chaîne...'
pat = re.compile('...Quelque chose d'expression régulière...')
match = pat.search(test_str)


def _remove_str1(base_str, target):
    """ match_Base basée sur les données d'objets_Couper str et reconnecter"""
    start = target.start()
    end = target.end()
    return base_str[:start] + base_str[end:]


def _remove_str2(base_str, target):
    """ match_Basé sur les données de l'objet
    base_Remplacez la partie appropriée de str par une chaîne de caractères vide"""
    return base_str.replace(target.group(), '') 


def run1():
    _remove_str1(test_str, match)


def run2():
    _remove_str2(test_str, match)


if __name__ == '__main__':
    t = timeit.Timer('run1()',
            'from %s import run1' % __name__)
    print t.timeit()

    t2 = timeit.Timer('run2()',
            'from %s import run2' % __name__)
    print t2.timeit()

Recommended Posts

Supprimer la sous-chaîne
Pouvez-vous supprimer ce fichier?
Supprimer les tweets pendant une période spécifiée
Supprimer tous les fichiers pyc dans le répertoire spécifié
Dans bash, "supprimez le fichier s'il existe".