2013-04-24 10 views
9

Mam więc wyrażenie takie jak "./folder/thisisa.test/file.cxx.h" Jak mogę zastąpić/usunąć wszystkie "." ale ostatnia kropka?Python regex pasujący do wszystkich, ale ostatnie wystąpienie

+0

Ten, który wkładam, jest szybszy. Cóż, nie zobaczysz jednak różnicy. – Loamhoof

+0

Prawdopodobnie szybsze jest użycie pętli, aby zastąpić je wszystkie, śledzić indeks ostatniego zamiennika i zastąpić z powrotem kropkę ostatnią po pętli. – didierc

+0

Jeśli manipulujesz ścieżkami, spójrz na 'os.path' – Felipe

Odpowiedz

13

dopasować wszystkie oprócz ostatniej kropki z regex:

'\.(?=[^.]*\.)' 

Korzystanie z lookahead aby sprawdzić, czy jest jakiś inny punkt po jednej znaleźliśmy (the uprzedzona nie jest część meczu).

+1

Dzięki za pomoc – landocalrissian

Powiązane problemy