Удалить определенные символы из строки в Python - PullRequest
456 голосов
/ 15 октября 2010

Я пытаюсь удалить определенные символы из строки, используя Python.Это код, который я использую прямо сейчас.К сожалению, кажется, что ничего не делает со строкой.

for char in line:
    if char in " ?.!/;:":
        line.replace(char,'')

Как мне сделать это правильно?

Ответы [ 27 ]

0 голосов
/ 11 июня 2019

Вы можете использовать замену регулярного выражения re модуля.Использование выражения ^ позволяет вам выбрать именно то, что вы хотите из вашей строки.

    import re
    text = "This is absurd!"
    text = re.sub("[^a-zA-Z]","",text) # Keeps only Alphabets
    print(text)

Выходные данные для этого будут "Thisisabsurd".Появятся только вещи, указанные после символа ^.

0 голосов
/ 13 января 2018

Рекурсивное разбиение: s = строка;символы = удаляемые символы

def strip(s,chars):
if len(s)==1:
    return "" if s in chars else s
return strip(s[0:int(len(s)/2)],chars) +  strip(s[int(len(s)/2):len(s)],chars)

пример:

print(strip("Hello!","lo"))    #He!
0 голосов
/ 31 октября 2017

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

def rm_char(original_str, need2rm):
    ''' Remove charecters in "need2rm" from "original_str" '''
    return original_str.translate(str.maketrans('','',need2rm))

Этот метод хорошо работает в Python 3.5.2

0 голосов
/ 10 мая 2015

Ниже одного .. без использования концепции регулярных выражений ..

ipstring ="text with symbols!@#$^&*( ends here"
opstring=''
for i in ipstring:
    if i.isalnum()==1 or i==' ':
        opstring+=i
    pass
print opstring
0 голосов
/ 17 февраля 2017

Вы можете использовать набор

    charlist = list(set(string.digits+string.ascii_uppercase) - set('10IO'))
    return ''.join([random.SystemRandom().choice(charlist) for _ in range(passlen)])
0 голосов
/ 23 января 2017

Даже приведенный ниже подход работает

line = "a,b,c,d,e"
alpha = list(line)
        while ',' in alpha:
            alpha.remove(',')
finalString = ''.join(alpha)
print(finalString)

output >> abcde

0 голосов
/ 07 января 2017

В Python 3.5

например.,

os.rename(file_name, file_name.translate({ord(c): None for c in '0123456789'}))

Чтобы удалить все числа из строки

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