すべての単語で最初に出現する文字を置き換えるにはどうすればよいですか?
この文字列があるとしましょう:
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
# ^ ^ ^^ ^ ^
明確にするために、「@」文字は常にすべての単語で一緒に表示されますが、単語の先頭または他の文字の間に置くことができます。
「@」文字が1回だけ発生した場合は、部分文字列の削除で見つかった正規表現のバリエーションを使用して、1回発生したときに削除しましたが、負の先読みと負の後読みを使用するpythonの行で2回ではありません。
@(?!@)(?<!@@)
出力を確認します。
>>> 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
がある@
でしょうか。