поиск и замена слова в строке на основе условия

#python #python-3.x #string

#python #python-3.x #строка

Вопрос:

здравствуйте, дорогой полезный ppl в stackoverflow ,

У меня есть пара вопросов о манипулировании string в python ,

первый вопрос:-

если у меня есть string подобное :

 'What's the use?'
 

и я хочу найти первую букву после 'the'

например (какая польза?) буква u

как я мог бы сделать это наилучшим образом?

второй вопрос:-

если я хочу что-то изменить в этой строке на основе первой буквы, которую я нашел в (первом вопросе), как я мог это сделать?

и спасибо за помощь!

Комментарии:

1. Регулярным выражением: demo Для замены: demo

2. Какие изменения в строке вы имеете в виду? Невозможно изменить строку на месте. Но вы можете создать новое.

Ответ №1:

Вы можете использовать замену регулярного выражения, чтобы удалить все содержимое, включая первое the (вместе с любыми последующими пробелами). Затем просто получите доступ к первому символу из этого вывода.

 inp = 'What''s the use?'
inp = re.sub(r'^.*?bthebs*', '', inp)
print("First character after first 'the' is: "   inp[0])
 

Это выводит:

 First character after first 'the' is: u
 

Ответ №2:

Другой re дубль:

 import re

sample = "What is the use?"
pattern = r"""
    (?<=btheb)    # look-behind to ensure 'the' is there.  This is non-capturing.
    s              # one or more whitespace characters
    (w)            # Only one alphanumeric or underscore character
"""

# re.X is for verbose, which handles multi-line patterns
m = re.search(pattern, sample, flags = re.X).groups(1)
if not m is None:
    print(f"First character after first 'the' is: {m[0]}")
 

Ответ №3:

Вы можете найти индекс ‘u’, используя метод str.index() . Затем вы можете извлечь строку до и после использования операции среза.

 s = "What's the use?"
character_index = s.lower().index('the ')   4
print(character_index)
# 11
print(s[:character_index]   '*'   s[character_index 1:])
# What's the *se?