如何从字符串中删除特定单词?

Zen*_*Zen 30 python string strip

我需要从字符串中删除特定的单词.

但我发现python strip方法似乎无法识别一个有序的单词.刚剥离传递给参数的任何字符.

例如:

>>> papa = "papa is a good man"
>>> app = "app is important"
>>> papa.lstrip('papa')
" is a good man"
>>> app.lstrip('papa')
" is important"
Run Code Online (Sandbox Code Playgroud)

我怎么能用python剥离一个指定的单词?

met*_*ter 52

使用str.replace.

>>> papa.replace('papa', '')
' is a good man'
>>> app.replace('papa', '')
'app is important'
Run Code Online (Sandbox Code Playgroud)

或者使用re和使用正则表达式.这将允许删除前导/尾随空格.

>>> 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'
Run Code Online (Sandbox Code Playgroud)

  • 尝试 `print "papa is papa is papa".replace('papa', '')` (2认同)

小智 16

如果我们讨论的是前缀和后缀,并且您的 Python 版本至少为 3.9,那么您可以使用这些新方法

>>> 'TestHook'.removeprefix('Test')
'Hook'
>>> 'BaseTestCase'.removeprefix('Test')
'BaseTestCase'

>>> 'MiscTests'.removesuffix('Tests')
'Misc'
>>> 'TmpDirMixin'.removesuffix('Tests')
'TmpDirMixin'
Run Code Online (Sandbox Code Playgroud)


iam*_*dev 9

最简单的方法是简单地用空字符串替换它.

s = s.replace('papa', '')
Run Code Online (Sandbox Code Playgroud)

  • 您可能还想在 papa 之后添加一个空格 - 我假设他不希望在字符串中留下一个前导空格。 (3认同)
  • 尝试`print "papa is papa is papa".replace('papa', '')` (2认同)

the*_*Man 8

如果只想从字符串的开头删除单词,那么你可以这样做:

  string[string.startswith(prefix) and len(prefix):]  
Run Code Online (Sandbox Code Playgroud)

其中 string 是您的字符串变量, prefix 是您要从字符串变量中删除的前缀。

例如:

  >>> papa = "papa is a good man. papa is the best."  
  >>> prefix = 'papa'
  >>> papa[papa.startswith(prefix) and len(prefix):]
  ' is a good man. papa is the best.'
Run Code Online (Sandbox Code Playgroud)