Вопрос по python, regex – Удаление первого появления слова из строки?

13

Я не знаком с регулярным выражением, и было бы здорово, если бы кто-то, кто дает решение с использованием регулярного выражения, мог объяснить свой синтаксис, чтобы я мог применить его к будущим ситуациям.

У меня есть строка (т.е.'Description: Mary had a little lamb'), и я хотел бы удалить'Description: ' так что строка будет читать'Mary had a little lamb,' но только первый экземпляр, такой, что если строка'Description: Description'новая строка будет'Description.'

Есть идеи? Спасибо!

Вы знаете, что первый экземпляр всегда будет в начале строки? Mark Byers

Ваш Ответ

3   ответа
0

regex просто укажите параметр count как1 вre.sub, Хотя вроде какregex не нужен в этом случае.

>>> import re
>>> text = 'Description: Mary had a little lamb'
>>> re.sub('Description: ','',text,1)
'Mary had a little lamb'
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded zhuyxn
Error: User Rate Limit Exceeded
2

а не только для "Описание:"

>>> import re
>>> s = 'Blah: words words more words'
>>> print re.sub(r'^\S*\s', '', s)
words words more words
>>> 
Error: User Rate Limit Exceededs.partition(" ")[2].
Error: User Rate Limit Exceeded
32

str.replace имеет максимальный аргумент замены. Итак, в вашем случае сделайте это:

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

"Mary had a little lamb Description: "

Использование регулярных выражений в основном точно так же. Во-первых, получите ваше регулярное выражение:

"Description: "

Поскольку Python довольно хорошо разбирается в регулярных выражениях, это просто строка, которую вы хотите удалить в этом случае. При этом вы хотите использовать его в re.sub, который также имеет переменную count:

>>>import re
>>>re.sub("Description: ","",mystring,count=1)
'Mary had a little lamb Description: '
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded zhuyxn
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы