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

时间:2012-05-18 07:31:09

标签: python regex

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

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

有什么想法吗?谢谢!

4 个答案:

答案 0 :(得分:32)

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

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

"Mary had a little lamb Description: "

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

"Description: "

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

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

答案 1 :(得分:1)

这个正则表达式适用于任何“单词”,而不仅仅是“描述:”

>>> import re
>>> s = 'Blah: words words more words'
>>> print re.sub(r'^\S*\s', '', s)
words words more words
>>> 

答案 2 :(得分:0)

使用regex只需在1中将计数参数指定为re.sub。虽然在这种情况下似乎不需要regex

>>> import re
>>> text = 'Description: Mary had a little lamb'
>>> re.sub('Description: ','',text,1)
'Mary had a little lamb'

答案 3 :(得分:0)

您可以在不使用正则表达式的情况下使用替换功能,方法是将Kaggle arg设置为1:

count