2014-10-09 6 views
2

Я работаю в Python, и у меня есть строка, такая как "world's" and "states.'", где я хочу проверить, является ли последняя буква слова алфавитом, а если нет, удалите ее. У меня есть следующий код:Заменить символы в конце строки?

if word[-1].isalpha(): 
    print word 
else: 
    print word[:-1] 

, но я также хочу, чтобы иметь возможность удалить два (или более) небуквенные символов. Я знаю, мне нужна какая-то петля.

ответ

0

Функция String rstrip необязательно принимает список символов для удаления.

rstrip(...) 
    S.rstrip([chars]) -> string or unicode 

    Return a copy of the string S with trailing whitespace removed. 
    If chars is given and not None, remove characters in chars instead. 
    If chars is unicode, S will be converted to unicode before stripping 
+0

Это верно, но 'chars' это черный список. Будет нужен белый список. –

4

Попробуйте цикл:

def rstripNotalpha(s): 
    while not s[-1].isalpha(): 
     s = s[:-1] 
    return s 

s = "'foo.-,'" 
print(rstripNotalpha(s)) 

Выход:

"'foo" 
0

Или старый добрый регулярное_выражение:

import re 
p = re.compile('(.*\w)([^\w]*)') 
m = p.match(word) 
print m.group(1) 
Смежные вопросы