मैं हर शब्द में एक चरित्र की पहली घटना को कैसे बदल सकता हूं?
कहो मेरे पास यह तार है:
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जहां @लगातार नहीं होगी?
