Як я можу замінити перше виникнення символу в кожному слові?
Скажіть, у мене є ця рядок:
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
# ^ ^ ^^ ^ ^
Для уточнення символи "@" завжди з'являються разом у кожному слові, але можуть бути на початку слова або між іншими символами.
Мені вдалося видалити символ "@", якщо він виникає лише один раз, використовуючи варіацію регулярного вираження, який я знайшов у " Видаліть підрядку", коли він виникає один раз, але не тоді, коли два рази поспіль у 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де @не було б послідовним?
