2010-04-07 5 views
6

मैं सोच रहा हूं कि पाइथन के भीतर एक स्ट्रिंग से गतिशील शब्द को कैसे निकाला जाए।पायथन में एक स्ट्रिंग से ":" में समाप्त होने वाले सभी शब्दों को मैं कैसे हटा सकता हूं?

शब्द के अंत में हमेशा ":" होगा, और कभी-कभी स्ट्रिंग के भीतर एक से अधिक होता है। मैं "शब्द:" की सभी घटनाओं को हटाना चाहता हूं।

धन्यवाद! :-)

+0

"गतिशील शब्द" क्या है? –

उत्तर

10

नियमित अभिव्यक्तियों का उपयोग करें।

import re 
blah = "word word: monty py: thon" 
answer = re.sub(r'\w+:\s?','',blah) 
print answer 

यह कोलन के बाद एक वैकल्पिक स्थान भी खींच देगा। ":":

def RemoveDynamicWords(s): 
    L = [] 
    for word in s.split(): 
     if not word.endswith(':'): 
      L.append(word) 
    return ' '.join(L) 
print RemoveDynamicWords('word: blah') 

या एक जनरेटर अभिव्यक्ति का उपयोग:

print ' '.join(i for i in word.split(' ') if not i.endswith(':')) 
+0

धन्यवाद! पायथन रेगेक्सप डॉक्स काफी डरावना है :( – veb

+0

@veb नियमित अभिव्यक्तियों को पाइथन के लिए एक कम डरावना परिचय: http://www.amk.ca/python/howto/regex/ – Jacinda

+0

@veb: SO में आपका स्वागत है। यदि कोई पोस्ट किया गया उत्तर है आप जो खोज रहे हैं, उसे "स्वीकार करने" के लिए चेकमार्क आइकन दबाएं। –

0

यह सब शब्द जिसके साथ एक अंत निकाल देता है। आप बाद में उनसे जुड़ सकते हैं।

+0

@ डेविड: यह जनरेटर अभिव्यक्ति नहीं है, यह एक सूची अभिव्यक्ति है। –

+0

सुधार के लिए धन्यवाद! – cryo

0
[ chunk for chunk in line.split() if not chunk.endswith(":") ] 

इस एक सूची प्रदान करेगी

संबंधित मुद्दे

 संबंधित मुद्दे