Rust में रेगुलर एक्सप्रेशन: उदाहरणों के साथ पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Rust में रेगुलर एक्सप्रेशन: स्ट्रिंग्स के साथ काम करने के लिए शक्तिशाली उपकरण

रेगुलर एक्सप्रेशन (regex) किसी दिए गए पैटर्न के अनुसार टेक्स्ट को खोजने, निकालने और बदलने के लिए एक अपरिहार्य उपकरण है। Rust में, रेगुलर एक्सप्रेशन के साथ काम लोकप्रिय क्रेट regex के माध्यम से कार्यान्वित किया जाता है, जो भाषा की विशेषता वाले उच्च प्रदर्शन और सुरक्षा सुनिश्चित करता है। इस लेख में, हम विशिष्ट उदाहरणों के साथ Rust में रेगुलर एक्सप्रेशन के साथ काम करने की मूल बातें समझेंगे।



regex क्रेट की स्थापना और कनेक्शन

शुरू करने के लिए, अपने प्रोजेक्ट की Cargo.toml फ़ाइल में निर्भरता जोड़ें:

[dependencies]regex = "1"

फिर कोड में आवश्यक मॉड्यूल आयात करें:

use regex::Regex;


रेगुलर एक्सप्रेशन बनाना और बुनियादी उपयोग

रेगुलर एक्सप्रेशन के साथ काम करने के लिए मुख्य प्रकार Regex है। इसे Regex::new() विधि का उपयोग करके बनाया जाता है, जो पैटर्न के साथ एक स्ट्रिंग लेता है और Result लौटाता है। आइए एक स्ट्रिंग में शब्द खोजने का एक सरल उदाहरण देखें:

use regex::Regex;

fn main() { let re = Regex::new(r"hello").unwrap(); let text = "hello world, hello Rust!"; // मिलान की उपस्थिति की जाँच if re.is_match(text) { println!("मिलान मिला!"); } // पहला मिलान खोजें match re.find(text) { Some(mat) => println!("मिला: '{}'", mat.as_str()), None => println!("कोई मिलान नहीं"), } // सभी मिलान खोजें for mat in re.find_iter(text) { println!("मिला: '{}' स्थिति में {}", mat.as_str(), mat.start()); }}

रॉ स्ट्रिंग (r"...") के उपयोग पर ध्यान दें। यह बैकस्लैश को एस्केप करने से बचाता है, जो रेगुलर एक्सप्रेशन के साथ काम करते समय विशेष रूप से सुविधाजनक है।



कैप्चर ग्रुप और डेटा निष्कर्षण

कैप्चर ग्रुप आपको स्ट्रिंग के उन हिस्सों को निकालने की अनुमति देते हैं जो पैटर्न के विशिष्ट भागों से मेल खाते हैं। Rust में, ग्रुप को गोल कोष्ठक () द्वारा दर्शाया जाता है:

use regex::Regex;

fn main() { // YYYY-MM-DD प्रारूप में दिनांक निकालना let re = Regex::new(r"(\\d{4})-(\\d{2})-(\\d{2})").unwrap(); let text = "आज: 2024-01-15, कल: 2024-01-14"; for cap in re.captures_iter(text) { println!("वर्ष: {}, महीना: {}, दिन: {}", &cap[1], &cap[2], &cap[3]); } // ईमेल पते निकालना let email_re = Regex::new(r"([\\w.]+)@([\\w.]+)").unwrap(); let email_text = "संपर्क: user@example.com, admin@test.org"; if let Some(caps) = email_re.captures(email_text) { println!("उपयोगकर्ता नाम: {}", &caps[1]); println!("डोमेन: {}", &caps[2]); }}

कोड की पठनीयता में सुधार के लिए ग्रुप को नाम दिया जा सकता है:

use regex::Regex;

fn main() { let re = Regex::new(r"(?P<year>\\d{4})-(?P<month>\\d{2})-(?P<day>\\d{2})").unwrap(); let text = "2024-01-15"; if let Some(caps) = re.captures(text) { println!("वर्ष: {}", caps.name("year").unwrap().as_str()); println!("महीना: {}", caps.name("month").unwrap().as_str()); println!("दिन: {}", caps.name("day").unwrap().as_str()); }}


रेगुलर एक्सप्रेशन का उपयोग करके टेक्स्ट बदलना

regex क्रेट टेक्स्ट बदलने के लिए शक्तिशाली विधियाँ प्रदान करता है। आइए कई विकल्पों पर विचार करें:

use regex::Regex;

fn main() { let re = Regex::new(r"\\d+").unwrap(); let text = "मेरे पास 2 बिल्लियाँ और 3 कुत्ते हैं"; // सभी अंकों को एक शब्द से बदलना let result = re.replace_all(text, "कई"); println!("{}", result); // "मेरे पास कई बिल्लियाँ और कई कुत्ते हैं" // कैप्चर ग्रुप का उपयोग करके बदलना let re2 = Regex::new(r"(\\w+)@(\\w+)").unwrap(); let email = "user@example.com"; let replaced = re2.rep

ब्लॉग

पुस्तक अनुशंसाएँ