प्रतिस्थापित न करें मैं मैचों को खोजने के लिए RegEx पैटर्न में प्रतीकों का उपयोग करना चाहता हूं, लेकिन मैं उन्हें प्रतिस्थापित नहीं करना चाहता हूं। यह सी # में वर्ग और नेमस्पेस हेरफेर के लिए है।RegEx - प्रतीकों का उपयोग करके मिलान करें लेकिन उन्हें
उदाहरण के लिए:
MyNamespaceLib.EntityDataModelTests.TestsMyClassTests+MyInnerClassTests
बदला जाना चाहिए के रूप में:
MyNamespaceLib.EntityDataModel.TestsMyClass+MyInnerClass
(ध्यान दें, केवल "टेस्ट" की जगह जब यह प्रतीत होता है अतं मै नेमस्पेस भाग का, और जब यह कक्षा/नामस्थान नाम का हिस्सा नहीं है)
मैचों को खोजने में मुझे पहला हिस्सा मिल गया है, लेकिन मैं प्रतीकों को प्रतिस्थापित मैच में रखने के लिए जूझ रहा हूं।
अब तक मेरे पास है:
var input = "MyNamespaceLib.EntityDataModelTests.TestsMyClassTests+MyInnerClassTests";
var output = Regex.Replace(input, "Tests[.+]|$", "");
मैं एक गैर पर कब्जा समूह का उपयोग कर की कोशिश की है, लेकिन मुझे लगता है जिस तरह से मैं कर रहा हूँ के लिए नहीं है इसका उपयोग करने की कोशिश कर रहा है।
धन्यवाद!
नहीं, इसके विपरीत, मैं ऐसे मैचों को प्रतिस्थापित करना चाहता हूं जो अनिवार्य रूप से "।", "+" या रेखा के अंत के साथ समाप्त हो जाएं। लेकिन यदि "टेस्ट" शब्द किसी नामस्थान या कक्षा के नाम के भीतर प्रकट होता है, तो इसे प्रतिस्थापित नहीं किया जाना चाहिए। – Steve
@ उपयोगकर्ता 1 9 27385: 'टेस्ट (?! [^। +])', फिर। – Ryan
अच्छा, यह पूरी तरह से काम किया। मैंने रेगेक्स में कभी भी लुकहेड का उपयोग नहीं किया है, इसलिए मैं कुछ और पढ़ूंगा। धन्यवाद minitech। – Steve