如何替换字符串中同时出现的2个或更多特殊字符或下划线

2024-09-28 13:18:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下字符串:

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

如果_在字符串中的任何位置出现多次,我希望删除它。因此,上述内容应转化为:

5weeks_rollingAverage_8hours

tvm


Tags: 字符串内容averagerollingtvmrollingaverage
2条回答

您可以使用正则表达式,正如您所说,对于非字母数字,我们可以使用[^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周滚动平均8小时

使用正则表达式

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

相关问题 更多 >

    热门问题