मैं इस पोस्ट प्रतिसाद नहीं पता है ' टी नया, लेकिन, मैंने कई प्रस्तावित समाधानों की कोशिश की है और उनमें से कोई भी काफी काम नहीं करता है और साथ ही मुझे जस्टिन जोन्स द्वारा प्रदान किए गए लिंक के लिए धन्यवाद मिला। उनके पास आईपी एड्रेस के लिए बहुत कुछ है लेकिन यह सूची का शीर्ष है और लिंककैड (मैं लव लिंकपैड) का उपयोग कर रहा हूं। मैंने जो परीक्षण किया है, वह बहुत अच्छी तरह से काम करता है।मैं नहीं बल्कि पिछले प्रदान की भाव में से किसी की तुलना में यह एक का उपयोग करने की सलाह देते:
^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$
दें कि निम्नलिखित के साथ LINQPad में एक शॉट:
// \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b 355.168.0.1 = 355.168.0.1 (Not Correct)
// ((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) 355.168.0.1 = 55.168.0.1 (Not correct)
// \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} 355.168.0.1 = 355.168.0.1 (Not Correct)
// ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ 355.168.0.1 = 355.168.0.1 (Not Correct)
// ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$ 355.168.0.1 = 355.168.0.1 (Not Correct)
// ^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$ 355.168.0.1 = No Match (Correct)
Match match = Regex.Match("355.168.0.1", @"^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$");
if (match.Success) {
Console.WriteLine(match.Value);
}
else {
Console.WriteLine("No match.");
}
नई रेगुलर एक्सप्रेशन से इस मान्य नहीं है जो सही है के साथ
: 355.168.0.1 = कोई मिलान जो टिप्पणियों में उल्लेख के अनुसार सही है।
मैं इस पर किसी भी बदलाव का स्वागत करता हूं क्योंकि मैं एक ऐसे टूल पर काम कर रहा हूं जो अभिव्यक्ति का उपयोग कर रहा है और हमेशा ऐसा करने के बेहतर तरीके तलाश रहा हूं।
अद्यतन: मैंने आईपी पते की एक सूची के साथ इस अभिव्यक्ति का एक उदाहरण उदाहरण प्रदान करने के लिए एक .NET Fiddle प्रोजेक्ट बनाया है जो विभिन्न मानों का परीक्षण करता है। इसके साथ टिंकर करने के लिए स्वतंत्र महसूस करें और इस अभिव्यक्ति का प्रयोग करने के लिए विभिन्न मानों को आजमाएं और अगर आपको कोई ऐसा मामला मिल जाए जहां अभिव्यक्ति विफल हो जाती है तो कोई इनपुट प्रदान करें। https://dotnetfiddle.net/JoBXdI
अद्यतन 2: बेहतर अभी तक इस पोस्ट का संदर्भ लें: Another related question.
धन्यवाद और मुझे उम्मीद है कि इस मदद करता है!
एक तरफ अभिव्यक्ति, क्या आप 'स्प्लिट' की बजाय 'Regex.Matchches' नहीं देख रहे हैं? – Ani
संभावित डुप्लिकेट [मेजबाननाम या आईपी पते से मेल खाने के लिए नियमित अभिव्यक्ति?] (Http://stackoverflow.com/questions/106179/regular-expression-to-match-hostname-or-ip-address) –
'999.999.999.999' ? – Andrey