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

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

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

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

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



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



इस लेख में, हम विस्तार से जानेंगे कि Rust में रेगुलर एक्सप्रेशन का उपयोग कैसे करें: क्रेट की स्थापना से लेकर उन्नत तकनीकों तक। आप सीखेंगे कि मिलान कैसे जांचें, डेटा कैसे निकालें, टेक्स्ट कैसे बदलें और त्रुटियों को कैसे संभालें। सभी कोड उदाहरण Rust में लिखे गए हैं और उपयोग के लिए तैयार हैं।



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



Rust में रेगुलर एक्सप्रेशन के साथ काम करने के लिए, Cargo.toml फ़ाइल में क्रेट regex जोड़ना आवश्यक है:



[dependencies]regex = "1"


उसके बाद, आप कोड में आवश्यक मॉड्यूल आयात कर सकते हैं:



use regex::Regex;


regex क्रेट स्वचालित रूप से रेगुलर एक्सप्रेशन को एक कुशल आंतरिक प्रारूप में संकलित करता है, जो उच्च गति सुनिश्चित करता है।



2. Rust में regex के साथ बुनियादी संचालन



2.1 मिलान की जाँच (is_match)



विधि is_match true लौटाती है यदि स्ट्रिंग में पैटर्न के साथ कम से कम एक मिलान हो:



use regex::Regex;

fn main() { let re = Regex::new(r"\\d+").unwrap(); let text = "आज 25 दिसंबर है";

if re.is_match(text) { println!("स्ट्रिंग में संख्याएँ हैं"); } else { println!("संख्याएँ नहीं मिलीं"); }}


यह विधि त्वरित सत्यापन के लिए उपयोगी है: जाँच करना कि स्ट्रिंग में ईमेल, फ़ोन या अन्य पैटर्न हैं या नहीं।



2.2 पहला मिलान खोजना (find)



विधि find पहला मिलान Match संरचना के रूप में लौटाती है, जिसमें मिलान का आरंभ और अंत होता है:



use regex::Regex;

fn main() { let re = Regex::new(r"\\b\\w+@\\w+\\.\\w+\\b").unwrap(); let text = "मेरा ईमेल: user@example.com, और admin@test.org भी";

if let Some(mat) = re.find(text) { println!("ईमेल मिला: {}", mat.as_str()); println!("स्थिति: {}..{}", mat.start(), mat.end()); }}


निष्पादन परिणाम:

ईमेल मिला: user@example.comस्थिति: 12..28


2.3 सभी मिलान खोजना (find_iter)



सभी मिलान प्राप्त करने के लिए इटरेटर find_iter का उपयोग किया जाता है:



use regex::Regex;

fn main() { let re = Regex::new(r"\\d+").unwrap(); let text = "मूल्य: 100, 250 और 500 रुपये";

for mat in re.find_iter(text) { println!("संख्या: {}", mat.as_str()); }}


आउटपुट:

संख्या: 100संख्या: 250संख्या: 500


3. कैप्चरिंग ब्रैकेट्स के साथ समूह निकालना



regex की सबसे शक्तिशाली क्षमताओं में से एक कैप्चरिंग समूह हैं। वे मिलान के भागों को निकालने की अनुमति देते हैं:



use regex::Regex;

fn main() { let re = Regex::new(r"(\\w+)@(\\w+)\\.(\\w+)").unwrap(); let text = "user@example.com";

if let Some(caps) = re.captures(text) { println!("पूरा ईमेल: {}", &caps[0]); println!("उपयोगकर्ता नाम: {}", &caps[1]); println!("डोमेन: {}", &caps[2]); println!("ज़ोन: {}", &caps[3]); }}


समूहों की संख्या 1 से शुरू होती है। समूह 0 संपूर्ण मिलान है।



अधिक पठनीय कोड के लिए नामित समूहों का भी उपयोग किया जा सकता है:



use regex::Regex;

fn main() { let re = Regex::new(r"(?P<name>\\w+)@(?P<domain>\\w+\\.\\w+)").unwrap(); let text = "admin@test.org";

if let Some(caps) = re.captures(text) { println!("नाम: {}", caps.name("name").unwrap().as_str()); ```

ब्लॉग

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