Python >> Tutoriel Python >  >> Python Tag >> RegEx

Fonction Strip() utilisant Regex

J'ai légèrement modifié votre script comme ceci,

def strip(char, string):
    if char == "":                # not "stripChar"
        regsp = re.compile(r'^\s+|\s+$')
        stripContext = regsp.sub("", context)
        return stripContext
    else:                       # some changes are here in this else statement
        stripContext = re.sub(r'^{}+|{}+$'.format(char,char), "", strip("",string))
        return stripContext

print(strip(stripChar, context))

Sortie :

Enter character to strip: e
Enter string to strip:   efdsafdsaeeeeeeeeee
fdsafdsa

Vous pouvez le faire comme ceci en utilisant re.sub

import re

def strip(string, chars=' \n\r\t'):
    return re.sub(r'(?:^[{chars}]+)|(?:[{chars}]+$)'.format(chars=re.escape(chars)), '', string)

Il utilise re.escape , afin que les utilisateurs puissent saisir des caractères tels que \ et [ qui ont une signification dans les chaînes regex. Il utilise également le ^ et $ jetons regex afin que seuls les groupes de caractères correspondants au début et à la fin de la chaîne soient mis en correspondance.


Je l'ai fait de cette manière simple et cela a fonctionné pour moi.

import re

def my_strip(string, char=''):
    regex_sub = re.sub(r'^\s+|\s+$', char, string)
    return(regex_sub)