2016-12-02 13 views
8

सी # में मैं एकाधिक समूहों को बदलने के लिए रेगेक्स निर्दिष्ट कैसे करूं। उदाहरण के लिए मैं पर्यावरण की नई लाइन के साथ \r\n या \r\r के एक से अधिक उदाहरणों को प्रतिस्थापित करना चाहता हूं। मैंने तर्कसंगत रूप से इस रेगेक्स को लिखा, लेकिन मुझे पता है कि यह गलत है। कृपया सही करें और समझाएं कि यह कैसे काम करता है।रेगेक्स कई नई लाइनों को प्रतिस्थापित करता है

System.Text.RegularExpressions.Regex.Replace(task.Message, @"(\r\n){2,}(\r\r){2,}", System.Environment.NewLine); 

इनपुट पाठ

Stackoverflow 

StackExchange 

User Experience 

कहाँ प्रत्येक पंक्ति या तो \r\n या \r\r के द्वारा अलग किया जा सकता है। अपेक्षित परिणाम regex के बाद की जगह

नीचे
Stackoverflow  
StackExchange  
User Experience 

उत्तर

10

मुद्दा यह है कि आपके regex दृश्यों \r\n (2 या अधिक) की और उसके बाद 2 या अधिक दृश्यों \r\r की से मेल खाता है। आप

[\r\n]+ 

या [\r\n]{2,} जरूरत है अगर आप केवल \r या \n के 2 या अधिक घटनाओं से मेल करने की जरूरत है।

आप वास्तव में, 2 या अधिक आम लाइन ब्रेक प्रकार (Windows में \r\n, यूनिक्स/लिनक्स में \n और \r मैक ओएस पर) से मेल

(?:\r?\n|\r){2,} 
+1

कार्य के दोषरहित उपयोग करने के लिए की जरूरत है। अनुमान है कि regex हमेशा मेरी सीखने की सूची पर होना चाहिए – Deeptechtons

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