How to strip a specific word from a string?

后端 未结 5 1079
醉话见心
醉话见心 2020-12-03 04:20

I need to strip a specific word from a string.

But I find python strip method seems can\'t recognize an ordered word. The just strip off any characters passed to the

相关标签:
5条回答
  • 2020-12-03 04:42

    Easiest way would be to simply replace it with an empty string.

    s = s.replace('papa', '')
    
    0 讨论(0)
  • 2020-12-03 04:53

    You can also use a regexp with re.sub:

    article_title_str = re.sub(r'(\s?-?\|?\s?Times of India|\s?-?\|?\s?the Times of India|\s?-?\|?\s+?Gadgets No'',
                               article_title_str, flags=re.IGNORECASE)
    
    0 讨论(0)
  • 2020-12-03 04:56

    Use str.replace.

    >>> papa.replace('papa', '')
    ' is a good man'
    >>> app.replace('papa', '')
    'app is important'
    

    Alternatively use re and use regular expressions. This will allow the removal of leading/trailing spaces.

    >>> import re
    >>> papa = 'papa is a good man'
    >>> app = 'app is important'
    >>> papa3 = 'papa is a papa, and papa'
    >>>
    >>> patt = re.compile('(\s*)papa(\s*)')
    >>> patt.sub('\\1mama\\2', papa)
    'mama is a good man'
    >>> patt.sub('\\1mama\\2', papa3)
    'mama is a mama, and mama'
    >>> patt.sub('', papa3)
    'is a, and'
    
    0 讨论(0)
  • 2020-12-03 04:56

    Providing you know the index value of the beginning and end of each word you wish to replace in the character array, and you only wish to replace that particular chunk of data, you could do it like this.

    >>> s = "papa is papa is papa"
    >>> s = s[:8]+s[8:13].replace("papa", "mama")+s[13:]
    >>> print(s)
    papa is mama is papa
    

    Alternatively, if you also wish to retain the original data structure, you could store it in a dictionary.

    >>> bin = {}
    >>> s = "papa is papa is papa"
    >>> bin["0"] = s
    >>> s = s[:8]+s[8:13].replace("papa", "mama")+s[13:]
    >>> print(bin["0"])
    papa is papa is papa
    >>> print(s)
    papa is mama is papa
    
    0 讨论(0)
  • 2020-12-03 04:58

    A bit 'lazy' way to do this is to use startswith- it is easier to understand this rather regexps. However regexps might work faster, I haven't measured.

    >>> papa = "papa is a good man"
    >>> app = "app is important"
    >>> strip_word = 'papa'
    >>> papa[len(strip_word):] if papa.startswith(strip_word) else papa
    ' is a good man'
    >>> app[len(strip_word):] if app.startswith(strip_word) else app
    'app is important'
    
    0 讨论(0)
提交回复
热议问题