Search code examples
pythonstringstrip

How to strip a specific word from a string?


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 parameter.

For example:

>>> papa = "papa is a good man"
>>> app = "app is important"
>>> papa.lstrip('papa')
" is a good man"
>>> app.lstrip('papa')
" is important"

How could I strip a specified word with python?


Solution

  • 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'