আমি প্রতিটি শব্দে কোনও চরিত্রের প্রথম উপস্থিতিটি কীভাবে প্রতিস্থাপন করতে পারি?
বলুন আমার কাছে এই স্ট্রিং রয়েছে:
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
# ^ ^ ^^ ^ ^
কেবলমাত্র স্পষ্টতার জন্য, "@" অক্ষর সর্বদা প্রতিটি শব্দে একসাথে উপস্থিত হয় তবে শব্দের শুরুতে বা অন্যান্য অক্ষরের মধ্যে হতে পারে।
আমি "@" চরিত্রটি মুছে ফেলতে সক্ষম হয়েছি যদি ডিলিট সাবস্ট্রিং-এ একবার দেখা যায় তবে আমি একবার রেজিেক্সের বৈচিত্রটি ব্যবহার করে এটি পাই, তবে পাইথনটিতে পরপর দু'বার নয় , যা নেতিবাচক বর্ণবাদী এবং নেতিবাচক বর্ণনহীন ব্যবহার করে:
@(?!@)(?<!@@)
আউটপুট দেখুন:
>>> 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কোথায় @হবে না?
