Найти - Пользователи
Полная версия: Каждую латинскую букву, которая находится перед первым символом *, заменить на точку
Начало » Python для новичков » Каждую латинскую букву, которая находится перед первым символом *, заменить на точку
1
Evhen
Если в заданном тексте нет символа *, то оставить его без изменения. В противном случае каждую латинскую букву, которая находится перед первым символом *, заменить на точку.

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

 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
py.user.next
  
>>> 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*'
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB