दिलचस्प पोस्ट
ऑब्जेक्ट फ़ील्ड के अनुसार ऑब्जेक्ट्स को व्यवस्थित करें पता लगाएँ कि किसी भी कुंजी को सी # (नहीं ए, बी, लेकिन किसी भी) में दबाया जाता है क्या जीएनयू का जावा कम्पाइलर (जीसीजे) मर चुका है? अजगर डुक्कर लैटिन कनवर्टर जब वर्तमान पासवर्ड ज्ञात नहीं है तो MySQL रूट पासवर्ड को रीसेट करना एडीटी और एंड्रॉइड एसडीके उपकरणों को अद्यतन करने के बाद क्लास को त्रुटि मिली नहीं है मोडल सेग्यू, नेविगेशन बार गायब हो जाता है JavaFx MediaPlayer "खिलाड़ी बना नहीं सका!" उबंटू 14.04 में त्रुटि कंसार को कंट्रेसेटेबल एंटिटी के अंत में कैसे ले जाए किसी दिए गए हालत से मेल खाने वाले तत्वों के सूचकांक ढूंढें IE8 में छद्म तत्व पर एक फ़िल्टर ग्रेडिएंट क्यों काम नहीं करता है? क्या नामफल () संकलन-समय पर मूल्यांकन किया जाता है? सी # में जावा की एन्यूएम के बराबर क्या है? स्वयं। delegate = self; ऐसा करने में क्या गलत है? एक सीएसवी को विभाजित करने के लिए रेगेक्स

मामला असंवेदनशील जगह है

पायथन में मामले-असंवेदनशील स्ट्रिंग प्रतिस्थापन करने का सबसे आसान तरीका क्या है?

Solutions Collecting From Web of "मामला असंवेदनशील जगह है"

string प्रकार इस का समर्थन नहीं करता है आप पुन: निर्देशक विकल्प के साथ नियमित अभिव्यक्ति उप विधि का उपयोग कर शायद सबसे अच्छा हो।

 >>> import re >>> insensitive_hippo = re.compile(re.escape('hippo'), re.IGNORECASE) >>> insensitive_hippo.sub('giraffe', 'I want a hIPpo for my birthday') 'I want a giraffe for my birthday' 
 import re pattern = re.compile("hello", re.IGNORECASE) pattern.sub("bye", "hello HeLLo HELLO") # 'bye bye bye' 

बहुत सरल, एक पंक्ति में:

 import re re.sub("(?i)hello","bye", "hello HeLLo HELLO") #'bye bye bye' re.sub("(?i)he\.llo","bye", "he.llo He.LLo HE.LLO") #'bye bye bye' 

या, वैकल्पिक "झंडे" तर्क का उपयोग करें:

 import re re.sub("hello", "bye", "hello HeLLo HELLO", flags=re.I) #'bye bye bye' re.sub("he\.llo", "bye", "he.llo He.LLo HE.LLO", flags=re.I) #'bye bye bye' 

BFloch के जवाब पर जारी, यह समारोह एक नहीं बदल जाएगा, लेकिन नए के साथ पुराने सभी घटनाओं – एक मामले में असंवेदनशील फैशन

 def ireplace(old, new, text): idx = 0 while idx < len(text): index_l = text.lower().find(old.lower(), idx) if index_l == -1: return text text = text[:index_l] + new + text[index_l + len(old):] idx = index_l + len(new) return text 

यह RegularExp की आवश्यकता नहीं है

 def ireplace(old, new, text): """ Replace case insensitive Raises ValueError if string not found """ index_l = text.lower().index(old.lower()) return text[:index_l] + new + text[index_l + len(old):] 

ब्लेयर कॉनरोड की तरह स्ट्रिंग कहती है। स्थान इस का समर्थन नहीं करता है।

Regex re.sub उपयोग करें, लेकिन प्रतिस्थापन स्ट्रिंग से बचने के लिए पहले याद रखना। ध्यान दें कि re.sub लिए 2.6 में कोई झंडे-विकल्प नहीं है, इसलिए आपको एम्बेडेड संशोधक '(?i)' (या पुनः ऑब्जेक्ट, ब्लेयर कॉनराड का उत्तर देखें)। इसके अलावा, एक और खराबी यह है कि प्रतिस्थापन पाठ में बैकस्लैश बच निकलेगा, यदि कोई स्ट्रिंग दी जाती है इस से बचने के लिए एक लैम्ब्डा में स्थानांतरित कर सकते हैं।

यहां एक फ़ंक्शन है:

 import re def ireplace(old, repl, text): return re.sub('(?i)'+re.escape(old), lambda m: repl, text) >>> ireplace('hippo?', 'giraffe!?', 'You want a hiPPO?') 'You want a giraffe!?' >>> ireplace(r'[binfolder]', r'C:\Temp\bin', r'[BinFolder]\test.exe') 'C:\\Temp\\bin\\test.exe' 

मुझे एस्केप अनुक्रमों में परिवर्तित किया जा रहा था (थोड़ा नीचे स्क्रॉल करें), इसलिए मैंने देखा कि re.sub बैकस्लास्ड पलायन के पात्रों को एस्केप से बचने के लिए परिवर्तित करता है।

इसे रोकने के लिए मैंने निम्न लिखा:

मामले को असंवेदनशील बदलें

 import re def ireplace(findtxt, replacetxt, data): return replacetxt.join( re.compile(findtxt, flags=re.I).split(data) ) 

इसके अलावा, यदि आप इसे एस्केप वर्णों के साथ प्रतिस्थापित करना चाहते हैं, जैसे अन्य जवाब यहां दिए गए हैं, जो कि एस्केप अनुक्रमों में परिवर्तित विशेष अर्थ वाले कचरे के पात्र हैं, बस अपने खोज को डिकोड करें या स्ट्रिंग की जगह दें। पायथन 3 में, कुछ ऐसा करना पड़ सकता है। डीकोड ("यूनिकोड_स्केप") # पाइथन 3

 findtxt = findtxt.decode('string_escape') # python2 replacetxt = replacetxt.decode('string_escape') # python2 data = ireplace(findtxt, replacetxt, data) 

पायथन 2.7.8 में परीक्षण किया गया

उम्मीद है की वो मदद करदे।

कभी भी एक उत्तर पोस्ट नहीं किया है और यह धागा वास्तव में बूढ़ा है, लेकिन मैं एक और sollution के साथ आया और लगा कि मैं आपका जवाब मिल सकता है, मैं पायथन प्रोग्रामिंग में अनुभवी नहीं हूं, इसलिए यदि इसमें अनुपलब्ध कमियां हैं, तो कृपया इसकी अच्छी शिक्षा के बाद बताएं: )

 i='I want a hIPpo for my birthday' key='hippo' swp='giraffe' o=(i.lower().split(key)) c=0 p=0 for w in o: o[c]=i[p:p+len(w)] p=p+len(key+w) c+=1 print(swp.join(o))