从字符串中删除单词的首次出现?

zhu*_*yxn 17 python regex

我不熟悉正则表达式,如果有人使用正则表达式提供解决方案可以解释他们的语法,那么我可以将它应用于未来的情况.

我有一个字符串(即.'Description: Mary had a little lamb'),我想删除'Description: '这样的字符串将读取'Mary had a little lamb,'但只有第一个实例,这样如果字符串是'Description: Description',新的字符串将是'Description.'

有任何想法吗?谢谢!

Jos*_*iah 37

Python的str.replace有一个max replace参数.所以,在你的情况下,这样做:

>>>mystring = "Description: Mary had a little lamb Description: "
>>>print mystring.replace("Description: ","",1)

"Mary had a little lamb Description: "
Run Code Online (Sandbox Code Playgroud)

使用正则表达式基本上完全相同.首先,得到你的正则表达式:

"Description: "
Run Code Online (Sandbox Code Playgroud)

由于Python对正则表达式非常好,所以在这种情况下它只是你要删除的字符串.有了它,你想在re.sub中使用它,它也有一个count变量:

>>>import re
>>>re.sub("Description: ","",mystring,count=1)
'Mary had a little lamb Description: '
Run Code Online (Sandbox Code Playgroud)

  • @omu_negru不,不.它默认为所有出现次数. (4认同)

Wal*_*lid 5

count您可以在没有正则表达式的情况下完成此操作,通过将arg 设置为 1使用替换函数:

>>> string = 'Description: Mary had a little lamb Description'
>>> string.replace('Description', '', 1)
'Mary had a little lamb Description'
Run Code Online (Sandbox Code Playgroud)