2011-06-06 3 views
5

में हटाना मैंस्ट्रिंग विम

number,number,string 

के रूप में सामान्य रूप है कि एक फ़ाइल है और मैं प्रत्येक पंक्ति से दोनों संख्या हटा सकते हैं और केवल स्ट्रिंग को निकालने के लिए चाहते हैं। Regexp क्या होगा?

उत्तर

12

आप उपयोग कर सकते हैं:

:s/^[0-9]*,[0-9]*,// 

पूरी फ़ाइल के लिए, कि है:

:%s/^[0-9]*,[0-9]*,// 
+0

धन्यवाद .. !! मैं भूल जाता हूं कि '^' ... धन्यवाद दोस्त .. :) –

+0

@ प्रसंथ माधवन उत्तर स्वीकार करें अगर यह आपको अपना धन्यवाद व्यक्त करने में मदद करता है :) –

+2

मैं बस यह जोड़ना चाहता हूं कि आप '\ d' का उपयोग कर सकते हैं '[0-9]' अगर आप पसंद करते हैं। इस तरह के कुछ शॉर्टकट हैं जो नियमित अभिव्यक्तियों को पढ़ने के लिए आसान बना सकते हैं, खासकर विम की पागल रेगेक्स दुनिया में। आप उन लोगों की पूरी सूची प्राप्त कर सकते हैं जो vim केवल ': help/\ i' के अंतर्गत समर्थित हैं। –

2

एक अच्छा नियमित अभिव्यक्ति हो सकता है:

/^\(\s*[+-]*[[:digit:]]*\.*[[:digit:]]\+,\s*\)\{2}/ 

यह, संख्याओं से मिलान एक सहित वैकल्पिक चिह्न और एक वैकल्पिक दशमलव बिंदु (माना जाता है कि आप अपने लोकेल में . का उपयोग करते हैं) इसके बाद कॉमा और लाइन की शुरुआत में दो बार वैकल्पिक सफेद जगह।

उपयोग:

:%s/^\(\s*[+-]*[[:digit:]]*\.*[[:digit:]]\+,\s*\)\{2}// 

जोड़े हेक्स अंक ([[:xdigit:]]) स्वाद के लिए।