विम में दो समान तारों में से एक की खोज कैसे करें?


29

विम में, अगर मैं "प्लानए" या "प्लानबी" से मेल खाने वाली खोज करना चाहता हूं, तो मुझे पता है कि मैं यह कर सकता हूं:

/plan[AB]

यह काम करता है क्योंकि रेगेक्स अपने पात्रों के सेट के रूप में ए या बी के लिए अनुमति देता है।

लेकिन मैं दो पूर्ण तारों में से एक को कैसे निर्दिष्ट कर सकता हूं? उदाहरण के लिए, "प्लानेटएवियस" या "प्लैनेटरी भयानक"?

यह इन दोनों के साथ-साथ "planetAnythingHereAsLongAsItsJustLetters" से मेल खाएगा:

planet\([a-zA-Z]*\)

मैं केवल "तार पर चढ़ने वाले" या "ग्रह के समान भयानक" वाले तारों का मिलान कैसे कर सकता हूं ?


दरअसल, कोष्ठक एक वर्ण वर्ग बनाते हैं। plan[ABC]मैच planA, planBऔर planCसमान रूप से अच्छी तरह से।
क्रिस्टोफर बॉटम्स

@molsecules - सही, धन्यवाद। मैंने सवाल अपडेट किया।
नाथन लॉन्ग

जवाबों:


43
/planet\(Awesome\|Terrible\)

संबंधित डॉक्यूमेंटेशन को देखने, जारी :help /करने और "एक पैटर्न की परिभाषा" अनुभाग तक स्क्रॉल करें।


1
आह! जब मैंने यह कोशिश की तो मैं कोष्ठकों से बच नहीं रहा था। दिलचस्प है - मुझे लगा कि मुझे केवल शाब्दिक पात्रों से बचना होगा।
नाथन लॉन्ग

1
@ नथन: विभिन्न रेगेक्स इंजनों के अलग-अलग नियम हैं जिनके बारे में वर्णों को विशेष बनाने के लिए बच जाना चाहिए। उन्हें शाब्दिक बनाने के लिए बचना चाहिए (जैसे POSIX BRE बनाम ERE)। आप विशेष पलायन में से एक को शामिल करके एक प्रति पैटर्न के आधार पर विम में भागने आवश्यकताओं tweak कर सकते हैं: \m, \M, \v, या\V । इसका 'magic'विकल्प भी है , लेकिन आमतौर पर इसे अकेले छोड़ना सबसे अच्छा है, क्योंकि इसका वैश्विक प्रभाव है (जब तक कि ऊपर के झंडे में से किसी एक द्वारा ओवरराइड नहीं किया जाता)।
क्रिस जॉन्सन

1
बहुत ही जादू का उपयोग करना इस तरह लगता है:/\vplanet(Awesome|Terrible)
सर्जियोआराज़ो

4

गिल्स के उत्तर में जोड़ने के लिए, आप वहां कुछ चीजें जोड़ना चाह सकते हैं:

/\<planet\(Awesome\|Terrible\)\>

\<एक 'शब्द' (अनिवार्य रूप से अल्फ़ान्यूमेरिक्स) की शुरुआत एक 'शब्द' (अनिवार्य रूप से अल्फ़ान्यूमेरिक)
\>के अंत को चिह्नित करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.