Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 2, 2019 21:23:51

Evhen
Зарегистрирован: 2019-12-01
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Каждую латинскую букву, которая находится перед первым символом *, заменить на точку

Если в заданном тексте нет символа *, то оставить его без изменения. В противном случае каждую латинскую букву, которая находится перед первым символом *, заменить на точку.

Помогите пожалуйста! Заранее спасибо.

Офлайн

#2 Дек. 3, 2019 07:27:51

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Каждую латинскую букву, которая находится перед первым символом *, заменить на точку

можно так:

 import re
def fun(text):
    if "*" in text:
        text1, text2 = text.split("*", 1)
        new_text1 = re.sub("[A-Za-z]", ".", text1)
        text = new_text1 + "*" + text2
    return text



Офлайн

#3 Дек. 4, 2019 02:08:23

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Каждую латинскую букву, которая находится перед первым символом *, заменить на точку

  
>>> s = 'abcd1234*abcd1234*'
>>> 
>>> f_replace = True
>>> tmp = []
>>> for ch in s:
...     if f_replace:
...         if ch == '*':
...             f_replace = False
...         if ch.lower() in 'abcdefghijklmnopqrstuvwxyz':
...             tmp.append('.')
...         else:
...             tmp.append(ch)
...     else:
...         tmp.append(ch)
... 
>>> out = ''.join(tmp)
>>> out
'....1234*abcd1234*'
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version