Bagaimana saya bisa mengganti kemunculan karakter pertama di setiap kata?
Katakanlah saya punya string ini:
hello @jon i am @@here or @@@there and want some@thing in '@here"
# ^ ^^ ^^^ ^ ^
Dan saya ingin menghapus yang pertama @
pada setiap kata, sehingga akhirnya saya memiliki string terakhir seperti ini:
hello jon i am @here or @@there and want something in 'here
# ^ ^ ^^ ^ ^
Hanya untuk klarifikasi, karakter "@" selalu muncul bersama di setiap kata, tetapi bisa di awal kata atau di antara karakter lain.
Saya berhasil menghapus karakter "@" jika itu terjadi hanya sekali dengan menggunakan variasi regex yang saya temukan di Hapus substring ketika itu terjadi sekali, tetapi tidak ketika dua kali berturut-turut dalam python , yang menggunakan lookahead negatif dan lookbehind negatif:
@(?!@)(?<!@@)
Lihat hasilnya:
>>> 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"
Jadi langkah selanjutnya adalah mengganti "@" ketika itu terjadi lebih dari satu kali. Ini mudah dengan melakukan s.replace('@@', '@')
untuk menghapus "@" dari mana pun itu terjadi lagi.
Namun, saya bertanya-tanya: apakah ada cara untuk melakukan penggantian ini dalam satu kesempatan?
@Hello@There
mana @
tidak akan berturut-turut?