C:
रेगुलर एक्सप्रेशन का उपयोग करना
कैसे करें:
C में रेगुलर एक्सप्रेशन्स का उपयोग करने के लिए, आप मुख्य रूप से POSIX regex पुस्तकालय (<regex.h>
) के साथ काम करेंगे। इस उदाहरण में बुनियादी पैटर्न मिलान का प्रदर्शन किया गया है:
#include <stdio.h>
#include <stdlib.h>
#include <regex.h>
int main(){
regex_t regex;
int return_value;
char *pattern = "^a[[:alnum:]]"; // पैटर्न जो 'a' से शुरू होने वाले स्ट्रिंग्स को अल्फान्यूमेरिक कैरेक्टर्स द्वारा अनुसरण करता है
char *test_string = "apple123";
// रेगुलर एक्सप्रेशन को कम्पाइल करें
return_value = regcomp(®ex, pattern, REG_EXTENDED);
if (return_value) {
printf("Could not compile regex\n");
exit(1);
}
// रेगुलर एक्सप्रेशन को निष्पादित करें
return_value = regexec(®ex, test_string, 0, NULL, 0);
if (!return_value) {
printf("Match found\n");
} else if (return_value == REG_NOMATCH) {
printf("No match found\n");
} else {
printf("Regex match failed\n");
exit(1);
}
// उपयोग में लाये गए regex द्वारा आवंटित मेमोरी को फ्री करें
regfree(®ex);
return 0;
}
मिलान स्ट्रिंग (“apple123”) के लिए उदाहरण उत्पादन:
Match found
और गैर-मिलान स्ट्रिंग (“banana”) के लिए:
No match found
गहराई से:
C में रेगुलर एक्सप्रेशन्स, POSIX मानक के भाग के रूप में, स्ट्रिंग मिलान और मैनिपुलेशन को प्रदर्शन करने का एक मजबूत तरीका प्रदान करते हैं। हालांकि, C में POSIX regex पुस्तकालय का API पहली श्रेणी के स्ट्रिंग मैनिपुलेशन सुविधाओं के साथ डिजाइन की गई भाषाओं जैसे कि Python या Perl में पाए जाने वाले API की तुलना में अधिक बोझिल माना जाता है। पैटर्न्स के लिए सिंटैक्स भाषाओं में समान होता है, लेकिन C मेमोरी प्रबंधन और प्रिपेरेशन, निष्पादन, और रेगुलर एक्सप्रेशन पैटर्न्स को उपयोग करने के बाद सफाई के लिए अधिक बोझिल कोड की मांग करता है।
इन चुनौतियों के बावजूद, C में regex का उपयोग करना सीखना इसलिए प्रतिफलदायक होता है क्योंकि यह निम्न-स्तरीय प्रोग्रामिंग अवधारणाओं की समझ को गहरा करता है। इसके अलावा, यह टेक्स्ट प्रोसेसिंग और डेटा निष्कर्षण जैसे क्षेत्रों में C प्रोग्रामिंग के लिए संभावनाओं को खोलता है जहां regex अपरिहार्य है। अधिक जटिल पैटर्न या regex ऑपरेशन के लिए, PCRE (Perl संगत रेगुलर एक्सप्रेशन) पुस्तकालय एक अधिक सुविधा-समृद्ध और कुछ हद तक आसान इंटरफेस प्रदान कर सकता है, हालांकि यह आपके C प्रोजेक्ट में एक बाहरी पुस्तकालय को एकीकृत करने की मांग करता है।