"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं यूआरएल को अधिक प्रभावी ढंग से मिलान करने के लिए अपनी नियमित अभिव्यक्ति को कैसे सुधार सकता हूं?

मैं यूआरएल को अधिक प्रभावी ढंग से मिलान करने के लिए अपनी नियमित अभिव्यक्ति को कैसे सुधार सकता हूं?

2024-12-14 को प्रकाशित
ब्राउज़ करें:467

How Can I Improve My Regular Expression to Match URLs More Effectively?

मिलान यूआरएल के लिए बेहतर नियमित अभिव्यक्ति

उपयोगकर्ता इनपुट से यूआरएल का पता लगाने और पार्स करने का प्रयास करते समय, एक प्रभावी नियमित अभिव्यक्ति का उपयोग करना महत्वपूर्ण है। आपके मामले में, जबकि आपकी वर्तमान अभिव्यक्ति कुछ यूआरएल प्रारूपों को कैप्चर करती है, यह उन यूआरएल के लिए जिम्मेदार नहीं है जिनमें स्पष्ट प्रोटोकॉल योजना का अभाव है, जैसे कि www.google.com।

संशोधित नियमित अभिव्यक्ति

इस समस्या का समाधान करने और व्यापक यूआरएल मिलान सुनिश्चित करने के लिए, निम्नलिखित संशोधित नियमित का उपयोग करने पर विचार करें अभिव्यक्ति:

^(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)

एनाटॉमी ऑफ़ द रेगेक्स

  • एंकर: सुनिश्चित करता है कि मैच शुरू हो और संपूर्ण स्ट्रिंग को समाप्त करता है।
  • प्रोटोकॉल (वैकल्पिक): वैकल्पिक को कैप्चर करता है "http" या "https" प्रोटोकॉल योजना।
  • डोमेन: उपडोमेन और शीर्ष-स्तरीय डोमेन सहित डोमेन नाम से मेल खाता है।
  • पोर्ट : वैकल्पिक पोर्ट नंबर कैप्चर करता है (उदा., ":8080")।
  • पथ: डोमेन के बाद किसी भी पथ की जानकारी कैप्चर करता है (उदाहरण के लिए, "/index.html")।
  • क्वेरी: क्वेरी स्ट्रिंग पैरामीटर कैप्चर करता है (उदा., "?नाम=जॉन").
  • Fragment: खंड पहचानकर्ता को कैप्चर करता है (उदाहरण के लिए, "#footer").

यह संशोधित नियमित अभिव्यक्ति कम है प्रतिबंधात्मक और www.google.com जैसे यूआरएल के साथ-साथ स्पष्ट प्रोटोकॉल वाले यूआरएल से सफलतापूर्वक मेल खाएगा (उदाहरण के लिए, http://www.stackoverflow.com).

उदाहरण कार्यान्वयन (जावास्क्रिप्ट)

const regex = new RegExp(/(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)g);
const url = 'www.google.com';

if (url.match(regex)) {
  console.log("URL successfully matched.");
} else {
  console.log("URL did not match.");
}
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3