Как я могу заменить первое вхождение символа в каждом слове?
Скажем, у меня есть эта строка:
hello @jon i am @@here or @@@there and want some@thing in '@here"
# ^ ^^ ^^^ ^ ^
И я хочу удалить первое @в каждом слове, чтобы в итоге я получил окончательную строку, подобную этой:
hello jon i am @here or @@there and want something in 'here
# ^ ^ ^^ ^ ^
Просто для пояснения, символы «@» всегда появляются вместе в каждом слове, но могут находиться в начале слова или между другими символами.
Мне удалось удалить символ «@», если он встречается только один раз, с помощью варианта регулярного выражения, найденного в подстроке Delete, когда это происходит один раз, но не дважды в строке в python , который использует отрицательный прогноз и отрицательный просмотр:
@(?!@)(?<!@@)
Смотрите вывод:
>>> s = "hello @jon i am @@here or @@@there and want some@thing in '@here"
>>> re.sub(r'@(?!@)(?<!@@)', '', s)
"hello jon i am @@here or @@@there and want something in 'here"
Таким образом, следующий шаг - заменить символ «@», если он встречается более одного раза. Это легко сделать, s.replace('@@', '@')удалив символ «@», где бы он ни появлялся снова.
Тем не менее, мне интересно: есть ли способ сделать эту замену за один выстрел?
@Hello@Thereгде @бы не быть последовательным?
