не удается заменить более 1 подчеркивания одним подчеркиванием в строке (regex python)

#regex #python-3.x #replace

#регулярное выражение #python-3.x #заменить

Вопрос:

 def strip_string(s):
    import re
    replaced_string = re.sub('[^\w/] ', '_', s)
    return replaced_string
print(strip_string('h^amp;ell`.,  |o w/p]{ p__orld'))
  

Ответ №1:

Если вы хотите использовать regex для замены более одного символа _ в строке на один _ , вы можете сделать

replaced_string = re.sub('[_] ', '_', s)

Полный код,

 import re

def strip_string(s):

    replaced_string = re.sub('[_] ', '_', s)
    return replaced_string
print(strip_string('h^amp;ell`.,  |o w/p]{ p__orld'))
print(strip_string('hello___world__'))

# Output
h^amp;ell`.,  |o w/p]{ p_orld
hello_world_