Как заменить 2 или более специальных символа или подчеркивания, появляющихся вместе в строке Python - PullRequest
0 голосов
/ 02 мая 2020

У меня есть следующая строка:

'___5weeks_rollingAverage_8hours'
'___5weeks__rolling=*%Average_8hours'
'___5weeks_rollingAverage_8hours__'
'___5weeks_rollingAverage_8hours'

I wi sh, чтобы удалить _, если она появляется более одного раза в строке. Таким образом, вышесказанное должно переводиться как:

5weeks_rollingAverage_8hours

tvm

Ответы [ 2 ]

1 голос
/ 02 мая 2020

вы можете использовать регулярное выражение, как вы сказали для non alphanumeri c мы можем использовать [^ a-zA-Z0-9], поэтому код выглядит примерно так:

import re
regex = re.compile(r'[^a-zA-Z0-9]{2,}')
t = '___5weeks_rollingAverage___8h**ou&%rs'

result = regex.sub("",t)
print(result)

Вывод: 5 недель_роллингAverage8hours

0 голосов
/ 02 мая 2020

с использованием регулярных выражений

import re

test_str = ("___5weeks_rollingAverage_8hours", "___5weeks__rolling=*%Average_8hours",
            "___5weeks_rollingAverage_8hours__", "___5weeks_rollingAverage_8hours")

regex = re.compile(r"[!\"#$%&'()*+,-.\/:;<=>?@\[\\\]^_`{|}~]{2,}")
for item in test_str:
    item = regex.sub('', item)
    print(item)

вывод

5weeks_rollingAverage_8hours
5weeksrollingAverage_8hours
5weeks_rollingAverage_8hours
5weeks_rollingAverage_8hours
...