#python
Вопрос:
Как заменить два или более пробелов, за которыми следует указанный символ, одним пробелом, за которым следует этот символ, чтобы, например " amp;"
, стать " amp;"
. Я мог бы последовательно бежать
str = str.replace(" amp;"," amp;")
но это происходит медленно.
Комментарии:
1. Итак, вы хотите просто заменить двойное пространство «»на»»? или просто когда он предшествует какому-либо символу, как
@#!
, например.
Ответ №1:
Используйте рефлекс
import re
pattern = re.compile(r' amp;')
string = ' amp; amp; h'
print(pattern.sub(' amp;', string))
Выход
amp; amp; h
Ответ №2:
замените один или несколько пробелов одним пробелом:
import re
# match 1 or more spaces and then any non space character
pattern = re.compile(r'(s )([^s] )')
# replace with single space and keep second group
res = pattern.sub(r' 2', string)