रेगेक्स 2 से अधिक सफेद रिक्त स्थान से मेल खाने के लिए लेकिन नई लाइन नहीं


87

मैं एक स्ट्रिंग में सभी 2 से अधिक सफेद स्थान बदलना चाहता हूं, लेकिन नई लाइनें नहीं, मेरे पास यह rexx है: \s{2,} लेकिन यह नई लाइनों से मेल भी ।

मैं केवल 2 या अधिक श्वेत स्थानों से कैसे मिलान कर सकता हूं और नई लाइनें नहीं?

मैं c # का उपयोग कर रहा हूँ


@nihcap - दरअसल, C # का अपना रेगेक्स फ्लेवर नहीं है, यह .Net आम लाइब्रेरी का एक हिस्सा है। इस स्थिति में, .Net और C # दोनों ही उपयोगी टैग हैं।
कोबी

जवाबों:


159

एक वर्ण वर्ग के अंदर मैच करने के लिए सफ़ेद स्पेस चार्ट लगाएं। उदाहरण के लिए:

[ \t]{2,}

2 या अधिक रिक्त स्थान या टैब से मेल खाता है।

आप भी कर सकते हैं:

[^\S\r\n]{2,}

जो कि किसी भी श्वेत-अंतरिक्ष चार को छोड़कर \rऔर \nकम से कम दो बार मेल खाता है (ध्यान दें कि राजधानी Sमें इसके \Sलिए कम है [^\s])


अपने अंतिम वाक्य में "शॉर्ट फॉर" का क्या मतलब है? इस आशुलिपि के बिना पूरी नियमित अभिव्यक्ति कैसी दिखेगी?
लोनी बेस्ट

5
@LonnieBest नियमित अभिव्यक्तियों में, जैसे कि w से बच गए अनुक्रमों के लिए, यह अक्सर एक कन्वेंशन है कि अपरकेस एस्केप सीक्वेंस लोअरकेस एस्केप सीक्वेंस का उलटा वर्ण सेट है। Eg \ d उलटा है \ D, \ s का व्युत्क्रम \ S है, \ w का व्युत्क्रम \ W है, इत्यादि और भी, [] abc जैसे [] द्वारा सीमांकित एक वर्ण वर्ग के भीतर, इसे निर्दिष्ट करना संभव है व्युत्क्रम का उपयोग करते हुए [^ abc]। इस प्रकार, \ S [^ \ _] के बराबर है, जो अनुमति नहीं होने पर भी [- ^ \ _] के बराबर होगा। (^ ^ एक व्युत्क्रम के प्रतिलोम का प्रतिनिधित्व करने का एक वैध तरीका नहीं है।)
देजय क्लेटन

@DejayClayton धन्यवाद, मुझे नहीं पता था कि।
लोनी बेस्ट

इस उत्तर ने काम किया, लेकिन क्यों \s{2,}इसे आगे ले जाने वाली न्यूलाइन्स को पकड़ा गया? अगर यह होता तो \n\s{2,}मैं समझता। और कोष्ठक में शाब्दिक स्थान लिखना क्यों काम करता है?
बिट-कम

"इस उत्तर ने काम किया, लेकिन क्यों \ _ {2}} ने इसे आगे बढ़ाते हुए नए सिरे से पकड़ लिया?" क्योंकि \sरिक्त स्थान, टैब और रेखा से मेल खाता है। "और कोष्ठक में शाब्दिक स्थान टाइप करना क्यों काम करता है?", ठीक है, इरेट, क्योंकि यह करता है। पता नहीं और क्या कहना है कि इसके बारे में :)
बार्ट कीर्स

0

रेगेक्स केवल दो स्थानों को लक्षित करने के लिए: [] {२,} रेक्स में ब्रैकेट चरित्र वर्ग है। मतलब वहां सिर्फ चरस। यहां सिर्फ स्पेस है। निम्नलिखित घुंघराले ब्रैकेट का अर्थ है दो या अधिक बार।

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