Удалите несколько точек в начале строки в Python - PullRequest
2 голосов
/ 26 октября 2011

У меня есть несколько строк, которые начинаются с точек, и я хочу удалить их. Какой самый лучший способ. И если следующий символ не является "/", добавьте его. Я новичок в Python, и я пытался сделать что-то подобное, чтобы стереть точки, но есть синтаксическая ошибка.

while (re.match(r'\.*', url[0]).end()) = 0:
   url = url[1:]
  • .... / ххх ---> / ххх
  • .xxx ---> / xxx
  • .. ab ---> / ab
  • / ab ---> / ab
  • ca ---> / ca

Это то, что я пытаюсь сделать.

Ответы [ 4 ]

10 голосов
/ 26 октября 2011

Чтобы избавиться от точек:

mystr = '...../your_string'
mystr = '/' + mystr.lstrip('./')

, и результат должен быть:

/ your_string

независимо от того, начинается ли онс точками или косой чертой (все они будут заменены одиночной косой чертой).

5 голосов
/ 26 октября 2011

Попробуйте с:

badUrl = "..../xxx"
url = "/" + badUrl.lstrip("./")

Он удалит все точки и косые черты с начала ваших строк, а затем мы добавим косую черту вручную.

4 голосов
/ 26 октября 2011

Я бы порекомендовал url.lstrip(".") для удаления точек, затем

if not url[0] == '/':
    url="/"+url

для добавления косой черты.

1 голос
/ 26 октября 2011

Кто-нибудь рассматривал возможность использования lstrip('./')?

ОК, lstrip не формально отвечает на его вопрос как заданный (поскольку он удалит все точки и косые черты, тогда как смешивание точек и косых черт следует игнорировать и несколько косых черт следует сохранить - согласно моему буквальному прочтению поста).

Для этого вам нужно воспользоваться решением @ ewok.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...