[Powered by Google Translate] [संगोष्ठी: नियमित एक्सप्रेशंस के साथ मिलान पैटर्न] [जॉन Mussman-हार्वर्ड विश्वविद्यालय] [यह है CS50.-CS50.TV] ठीक है. खैर, हर किसी का स्वागत है. इस CS50 2012 है. मेरा नाम जॉन है, और मैं नियमित अभिव्यक्ति के बारे में आज बात कर दिया जाएगा. नियमित अभिव्यक्ति मुख्य रूप से एक उपकरण है, लेकिन यह भी कभी कभी इस्तेमाल किया कोड में सक्रिय रूप से अनिवार्य रूप से पैटर्न और तार के मैच के लिए. तो यहाँ xkcd से एक वेब हास्य है. इस हास्य में हत्यारा है जहां एक हत्या के रहस्य नहीं है छुट्टी पर किसी ने पीछा किया, और मुख्य पात्र के लिए है एक पते की तलाश में ईमेल के 200 मेगाबाइट के माध्यम से खोज. और वे नियमित अभिव्यक्ति है जो जानता है कि जब किसी को देने के बारे में हैं - संभवतः एक सुपर हीरो - झटका खाता नीचे और कुछ कोड लिखते हैं और हत्या के रहस्य को हल करती है. तो मुमकिन है कि आप क्या करने के लिए सशक्त किया जाएगा कि कुछ हो जाएगा इस संगोष्ठी के बाद. हम सिर्फ भाषा के लिए एक संक्षिप्त परिचय प्रदान करने के लिए जा रहे हैं और आप अपने दम पर अधिक संसाधनों के बाद जाने के लिए पर्याप्त साधन दे. इसलिए नियमित अभिव्यक्ति इस तरह मूल रूप से दिखेगा. इस रूबी में एक नियमित अभिव्यक्ति है. यह सभी भाषाओं में बहुत अलग नहीं है. हम रूबी में नियमित अभिव्यक्ति के शुरू और चिह्नित करने के लिए सिर्फ स्लैश पर है. और इस ईमेल पते पैटर्न में देखने के लिए एक नियमित अभिव्यक्ति है. तो हम पहले थोड़ा पर किसी भी अक्षरांकीय चरित्र के लिए लग रहा है देखते हैं. ईमेल पतों को अक्सर एक वर्णमाला चरित्र के साथ शुरू करना है क्योंकि यही है. और फिर किसी विशेष चरित्र @ प्रतीक द्वारा पीछा किया. और फिर डोमेन नाम के लिए एक ही बात है. और फिर 2 और 4 के बीच अक्षर इतने पर शुद्ध.,. कॉम के लिए लग रही है, और करने के लिए. तो यह है कि नियमित रूप से अभिव्यक्ति का एक और उदाहरण है. इसलिए नियमित अभिव्यक्ति पाठ में patters खोजने के लिए प्रोटोकॉल रहे हैं. वे तुलना, चयन, और प्रतिस्थापन. एक निर्देशिका में 54 में समाप्त होने वाले सभी फोन नंबर लग रहा है एक तीसरा उदाहरण है. तो CS50 निर्देशिका डेविड rips से पहले हम के लिए खोज सकते हैं हम कोष्ठकों है जहां एक पैटर्न तो 3 नंबर तो, कोष्टक खत्म 3 अधिक संख्या, डैश, 2 नंबर, और फिर 54. और कहा कि हम उस के लिए खोज करने के लिए एक नियमित अभिव्यक्ति के साथ आने के लिए कैसे अनिवार्य रूप से किया जाएगा. इसलिए कर रहे हैं - हम CS50 में कुछ बातें किया है की तरह एक छोटा सा कर रहे हैं कि इसलिए नियमित अभिव्यक्ति, - उदाहरण के लिए - dictionary.C फ़ाइल में जादू की जांच समस्या सेट के लिए आप fscanf का उपयोग किया हो शब्दकोश से एक शब्द में पढ़ने के लिए. और तुम प्रतिशत 45s 45 अक्षरों का एक स्ट्रिंग के लिए देख रहा है देख सकते हैं. तो यह एक अल्पविकसित नियमित अभिव्यक्ति की तरह कुछ है. और तुम वहाँ में बिल फिट कि किसी भी 45 वर्ण हो सकता है और उन उठा. सबसे हाल ही में वेब प्रोग्रामिंग समस्या में और फिर दूसरा उदाहरण php के लिए distro के कोड में सेट हम वास्तव में एक साधारण नियमित अभिव्यक्ति है. और यह एक बस बस वेब पेज में पारित कर दिया है कि अगर जाँच करने के लिए देख रहा है या तो लॉगिन से मेल खाता है या रजिस्टर लॉगआउट. PHP के. और फिर कि नियमित अभिव्यक्ति मिलान के आधार पर सही या गलत लौटने. तो जब आप नियमित अभिव्यक्ति का उपयोग करते हैं? क्यों तुम यहाँ आज कर रहे हैं? वहाँ कुछ है कि जब तो आप नियमित अभिव्यक्ति का उपयोग नहीं करना चाहती और भी अधिक आसानी से आप के लिए काम करता है. तो XML और HTML वास्तव में बहुत मुश्किल हैं हम एक छोटा सा में देखेंगे के लिए नियमित अभिव्यक्ति लिखने के लिए. तो उन भाषाओं के लिए समर्पित पारसर्स हैं. आप भी अक्सर व्यापार नापसंद और सटीकता के साथ ठीक करने की आवश्यकता है. आप कोशिश कर रहे हैं - तो हम एक ईमेल पते के लिए एक नियमित अभिव्यक्ति देखा लेकिन आप एक विशिष्ट ईमेल पता चाहते थे और धीरे - धीरे कहना यह अधिक सटीक हो गया के रूप में नियमित रूप से अभिव्यक्ति और अधिक जटिल हो सकता है. इसलिए कि एक व्यापार बंद हो जाएगा. आप ठीक नियमित अभिव्यक्ति के साथ बना रहे हैं कि सुनिश्चित किया जाना है. आप के लिए देख रहे हैं कि वास्तव में क्या पता है कि इसे और अधिक समझ कर सकता है समय में डाल दिया है और एक अधिक प्रभावी पार्सर लिखने के लिए. और अंत में नियमितता के साथ एक ऐतिहासिक मुद्दा है भाव और भाषा की. नियमित अभिव्यक्ति वास्तव में बहुत अधिक शक्तिशाली की तुलना में कर रहे हैं प्रति नियमित अभिव्यक्ति का एक औपचारिक अर्थ में कहते हैं. तो मुझे लगता है, औपचारिक सिद्धांत में बहुत दूर जाना नहीं करना चाहती लेकिन सबसे अधिक भाषाओं हम वास्तव में कोड नियमित रूप से नहीं कर रहे हैं. नियमित अभिव्यक्ति कभी कभी लगता है कि सभी सुरक्षित नहीं माना जाता है और यह कारण है. तो बुनियादी तौर पर भाषाओं के लिए एक चोमस्की पदानुक्रम, वहाँ है और नियमित अभिव्यक्ति संघ, कड़ी, का उपयोग करने का निर्माण कर रहे हैं और हम कुछ ही मिनटों में क्लीन तारा आपरेशन देखेंगे. आप रुचि रखते हैं सिद्धांत में हुड के तहत वहाँ पर जा रही एक बहुत कुछ है. एक संक्षिप्त इतिहास - तो बस यहां संदर्भ के लिए - नियमित रूप से सेट आया 1950 के दशक में, और फिर हम उस सरल संपादकों था नियमित अभिव्यक्ति शामिल - बस तार के लिए खोज. Grep - जो एक कमांड लाइन उपकरण है - पहले की गई थी 1960 के दशक में नियमित अभिव्यक्ति शामिल है कि बहुत लोकप्रिय उपकरण. 80 के दशक में, पर्ल बनाया गया था - एक प्रोग्रामिंग भाषा है कि बहुत प्रमुखता से नियमित अभिव्यक्ति को शामिल किया गया. और तो और हाल ही में हम पर्ल संगत नियमित अभिव्यक्ति मिली है मूल रूप से एक ही वाक्य रचना का ज्यादा उपयोग करने वाले अन्य भाषाओं में प्रोटोकॉल. बेशक सबसे महत्वपूर्ण घटना 2008 में हुई थी जहां पहले राष्ट्रीय नियमित एक्सप्रेशंस दिन, वहाँ था आपको लगता है कि जश्न मनाने के लिए चाहते हैं जो मैं है 1 जून का मानना ​​है. यहाँ फिर से, बस एक छोटा सा और सिद्धांत. इसलिए नियमित अभिव्यक्ति के निर्माण के एक जोड़े को अलग अलग तरीके हैं. एक सरल तरीका है कि आप करने जा रहे हैं कि अभिव्यक्ति का निर्माण होता है व्याख्या स्ट्रिंग पर चलने - मूल रूप से है कि मिनी कार्यक्रम एक छोटे से निर्माण एक स्ट्रिंग के टुकड़े का विश्लेषण और देखेंगे, "ओह, यह नियमित अभिव्यक्ति के लिए फिट है या नहीं है?" और फिर उस चलाते हैं. आप एक बहुत छोटा सा नियमित अभिव्यक्ति है, तो यह शायद है ऐसा करने का सबसे कारगर तरीका है. और फिर आप अगर - एक और विकल्प के पुनर्निर्माण रखने के लिए है अभिव्यक्ति तुम जाओ, और उस अनुकरण संभावना है. और नियमित रूप से अभिव्यक्ति एल्गोरिदम पर इन जल्दी करने का प्रयास कर रहे थे अपेक्षाकृत सरल और अपेक्षाकृत तेजी से है, लेकिन लचीलेपन का एक बहुत कुछ नहीं था. इसलिए चीजों में से कुछ हम को देखने जा रहे हैं कि यहां तक ​​कि ऐसा करने के लिए आज हम और अधिक जटिल नियमित अभिव्यक्ति करना पड़ा है संभवतः बहुत धीमी है कि कार्यान्वयन, ध्यान में रखना है कि कुछ तो हमले के विभिन्न प्रकार के एक नियमित अभिव्यक्ति इनकार भी नहीं है के इन नए कार्यान्वयन के लिए क्षमता का दोहन कि बहुत जटिल बनने के लिए नियमित अभिव्यक्ति. और हम बफर अतिप्रवाह हमलों में देखा कि बहुत ही अर्थ में, आपको लगता है कि काम है कि पुनरावर्ती छोरों बनाकर हमलों है स्मृति की क्षमता उग आया. और जिस तरह से Regexen नियमित अभिव्यक्ति की आधिकारिक बहुवचन में से एक है एंग्लो सैक्सन में बैलों को सादृश्य द्वारा. ठीक है, तो अजगर पुस्तकालय व्यक्ति में यहाँ आप में से कई एमएसीएस है, तो आप वास्तव में अपनी स्क्रीन पर इस खींच सकते हैं. नियमित अभिव्यक्ति पायथन में निर्माण कर रहे हैं. और तो अजगर इस लिंक पर एमएसीएस और भी ऑनलाइन उपलब्ध है पर पहले से लोड किया जाता है. आप देख रहे हैं तो अगर आप को थामने और आप अजगर है सुनिश्चित कर सकते हैं हम यहाँ के आसपास खेलते हैं. आप बस अपने कंप्यूटर में अजगर लिखें ताकि अगर एक मैनुअल ऑनलाइन, वहाँ है आप संस्करण टर्मिनल में आता है कि देखेंगे. तो मैं अजगर के 2 संस्करण के रूप में भी एक धोखा शीट के लिए मार्गदर्शन करने के लिए एक लिंक प्रदान की है. वहाँ अजगर का एक संस्करण 3 है, लेकिन अपने मैक जरूरी नहीं है प्रीलोडेड उस के साथ आते हैं. तो बहुत अलग नहीं. ठीक है, तो पायथन में नियमित अभिव्यक्ति का उपयोग करने के कुछ मूल बातें. तो यहाँ मैं एक बहुत ही सरल अभिव्यक्ति का इस्तेमाल किया है, तो मैं अजगर आयात फिर किया और फिर re.search का नतीजा लिया. और खोज 2 तर्क लेता है. पहले नियमित अभिव्यक्ति है, और दूसरा पाठ है या आप का विश्लेषण करना चाहते स्ट्रिंग. और फिर मैं result.group बाहर मुद्रित. इसलिए ये हम आज देखने जा रहे 2 बुनियादी कार्य कर रहे हैं नियमित अभिव्यक्ति के बारे में सीखने में. तो बस इस नियमित अभिव्यक्ति यहाँ टूट ज और तब \ w और फिर मैं तो \ डब्ल्यू सिर्फ वहाँ में किसी भी वर्णमाला चरित्र स्वीकार करता है. तो यहाँ हम एक और वर्णमाला चरित्र एक "ज" की तलाश में है और फिर रहे हैं और तब मीटर है, तो यहाँ हैम मैच होगा में, "अब्राहम लिंकन और हैम सैंडविच." यह उस समूह का परिणाम है. हम क्या कर सकते हैं और बात है कि अजगर में पाठ का हमारे से पहले तार का उपयोग है. तो मुझे लगता है कि मुझे आगे जाना है और यहां कि अपने आप को रोकना होगा. अजगर आयात फिर से. और मैं एक ही बात कर रहे थे - हमें पाठ है हम कहते हैं "अब्राहम," हमें ज़ूम में जाने - वहाँ हम चले. पाठ "अब्राहम हैम खाती है." ठीक है, और फिर = re.search परिणाम. और फिर हमारी अभिव्यक्ति घंटे किया जा सकता है, और फिर मैं डॉट मी क्या करेंगे. तो डॉट बस, नंबर सहित एक नई लाइन नहीं है कि किसी भी चरित्र लेता है प्रतिशत के लक्षण, ऐसा कुछ. और फिर पाठ - बूम - और फिर result.group-हाँ. इसलिए कि यहां बुनियादी सुविधा को लागू करने के लिए बस कैसे है. उस पागल पाठ - - हम जानते हैं कि एक पाठ अंगूठी था तो वापस स्लैश के बहुत सारे कहना है शामिल और अंदर तार और भागने दृश्यों की तरह लग सकता है कि चीजें, तब हम शायद स्वीकार कर लिया है कि सुनिश्चित करने के लिए कच्चे पाठ इनपुट का उपयोग करना चाहते हैं. और बस ऐसे ही लग रहा है. हम वहाँ में उनमें से प्रत्येक के लिए देख रहे थे तो अगर हम कुछ भी नहीं करना चाहिए. लेकिन यह है कि आप इसे लागू कैसे होगा, बस से पहले की स्ट्रिंग नियमित अभिव्यक्ति तुम पत्र आर डाल दिया. ठीक है, तो हमें जा रहा रखने के लिए. सही सब - तो हमें यहां एक जोड़े को दोहराए पैटर्न को देखो. तो आप क्या करना चाहते हैं एक बात है कि चीजों को दोहराना है आप पाठ के माध्यम से खोज कर रहे हैं. तो ख के किसी भी नंबर से एक का पालन करने के लिए - तुम अब * करते हैं. और फिर अन्य नियमों की एक श्रृंखला भी शामिल है. और आप इन ऊपर के सभी देख सकते हैं, मैं सिर्फ कुछ के माध्यम से चला हूँ सबसे अधिक लोगों का इस्तेमाल किया. तो अब + एक किसी भी एन बी के 0 से अधिक द्वारा पीछा किया है. अब? एक ख 0 या 1 के द्वारा पीछा किया. अब {एन} एक ख के एन द्वारा पीछा किया, और फिर इतने पर है. आप घुंघराले ब्रेसिज़ में 2 नंबर है, तो आप एक सीमा निर्दिष्ट कर रहे हैं कि संभवतः मिलान किया जा सकता है. तो हम एक मिनट में एक जोड़े को दोहराए पैटर्न पर अधिक गौर करेंगे. तो यहाँ उपकरण मिलान इन पैटर्न का उपयोग करते समय मन में रखने के लिए 2 बातें. हम के एचएम पर देखना चाहता हूँ तो कहते हैं, "अब्राहम लिंकन हैम सैंडविच बनाता है." तो मैं ने इब्राहीम से अब्राहम लिंकन का नाम बदल दिया है. और अब हम इस खोज समारोह से वापस आ रहा है क्या देख रहे हो और यह केवल इस मामले में हैम देता है. और यह खोज सिर्फ स्वाभाविक रूप से छोड़ दिया सबसे कतार लेता है क्योंकि वह करता है. और अगर आप अन्यथा निर्दिष्ट जब तक सभी नियमित अभिव्यक्ति है कि क्या करेंगे. हम सभी को खोजने के लिए चाहता था, तो उस के लिए एक समारोह है - सब लगता है. तो बस सब = re.findall ('h.m', पाठ) की तरह लग सकता है और उसके बाद) (all.group. सभी हैम और हैम दोनों का उत्पादन, प्रत्येक हैम इस मामले में दोनों अब्राहम में तार की. तो यह एक और विकल्प है. बढ़िया है. मन में रखने के लिए दूसरी बात यह नियमित अभिव्यक्ति सहज सबसे बड़ा ले. हमें इस उदाहरण पर नजर डालते हैं. हम यहां कि बाएं सबसे खोज किया था, और फिर मैं एक बड़ा खोज का प्रयास क्लीन तारा ऑपरेटर का उपयोग कर. ऐसा करने के लिए, "अब्राहम लिंकन, हैम सैंडविच बनाता है" और मैं केवल वापस मिला एक परिणाम के रूप में मीटर. उस गलती के लिए कारण है कि मैं के किसी भी संख्या ले सकता था कि मैं घंटे और मीटर के बीच में जाने के लिए कुछ भी निर्दिष्ट नहीं किया है क्योंकि घंटे है. मीटर था कि वहाँ केवल उदाहरण - उस में मीटर के साथ वहाँ केवल उदाहरण और ज के किसी भी संख्या सिर्फ स्ट्रिंग मी थे. तो मैं इसे फिर से कोशिश की, मैंने कहा, "ठीक है, हमें यहां वास्तविक सबसे बड़े समूह के लिए चलते हैं." और फिर मैं ज किया. * मी, सिर्फ घंटे और मीटर के बीच वर्णों की किसी भी संख्या देता है तो. और अगर तुम सिर्फ बाहर शुरू कर रहे हैं और ठीक है, यह अच्छी तरह से, "ओह होगा सोच अगर मुझे हैम मिलता है, "यह वास्तव में अब्राहम लिंकन में ज से सब कुछ ले जाता है हैम का अंत करने के लिए सभी तरह से ऊपर. यह लालची है, यह ज देखता है - यह सब अन्य पाठ - मी, और कहा कि इसके अंदर क्या लगता है यह एक विशेष रूप से प्रबल है - यह है कि हम भी कर सकते हैं एक विशेषता है यह अन्य कार्यों का उपयोग लालची हो नहीं करने के लिए निर्दिष्ट करें. लेकिन यह है कि हम विशेष रूप से ध्यान में रखना है कुछ है HTML पाठ को देख, जो एक कारण है कि नियमित अभिव्यक्ति HTML के लिए मुश्किल हैं. क्योंकि आप बीच में एक HTML खुला टैग और फिर सामान के बहुत सारे हैं अगर और फिर कुछ अन्य HTML, कार्यक्रम में बहुत बाद में टैग बंद आप बस संभवतः गलती से अपने एचटीएमएल कोड का एक बहुत खा लिया है. ठीक है - तो और अधिक विशेष वर्ण, कई अन्य भाषाओं की तरह, हम स्लैश का उपयोग कर से बचने. तो हम एक नई लाइन के लिए छोड़कर किसी भी चरित्र को निर्दिष्ट करने के लिए डॉट का उपयोग कर सकते हैं. हम किसी भी अक्षर को निर्दिष्ट करने के लिए भागने डब्ल्यू का उपयोग कर सकते हैं. और किसी पूर्णांक के लिए सादृश्य भागने घ से - संख्यात्मक चरित्र. हम निर्दिष्ट कर सकते हैं - हम संबंधित भाव को निर्दिष्ट करने के लिए कोष्ठक का उपयोग कर सकते हैं. तो यह एक, बी, या सी को स्वीकार करेंगे. और हम भी निर्दिष्ट या एक या ख या तो के लिए विकल्प कर सकते हैं. उदाहरण के लिए - हम कई संभावनाओं के लिए देख रहे थे कोष्ठक में हम में के रूप में या ऑपरेटर इस्तेमाल कर सकते हैं - इसलिए हमें यहाँ इस उदाहरण के लिए वापस जाओ. तब हमें यहाँ इस उदाहरण के लिए वापस जाओ, और - और अब हमें ले चलो ऐ ले - तो यह वापस आ जाना चाहिए - मैं यह अभी भी इब्राहीम का अनुमान है. इस - तो हम सब करते हैं - महान. इसलिए हमें यहां पाठ अद्यतन करते हैं. "उसकी हेमिंग जबकि अब्राहम हैम खाती -. हेमिंग जबकि" बढ़िया है. सभी. बढ़िया है. अब हम हैम, हैम, और हेम मिलता है. हेमिंग है - उसे गुनगुना जबकि - हेम उसे गुनगुना रहा है. बढ़िया है. एक ही बात. अब सभी गुंजन या उस पर उठा बिना अभी भी बस, हैम हैम, और हेम देता है. ग्रेट - हम दोनों को देखने के लिए चाहते थे कि यदि ऐसा है तो क्या है - तो हम भी कर सकता है उसे या - हम चाहते हैं कि करने के लिए वापस आ जाएगा. ठीक है - तो - सब ठीक - स्थिति में आप भी कैरट या डॉलर के हस्ताक्षर का उपयोग कर सकते हैं आप शुरू में कुछ या एक स्ट्रिंग के अंत के लिए देख रहे हैं कि निर्दिष्ट करने के लिए. या शुरू करने या किसी शब्द के अंत. यही है कि उपयोग करने के लिए एक ही रास्ता है. ठीक है - तो हमें पाठ का एक थोड़ा बड़ा ब्लॉक के आसपास के साथ खेलते हैं. हमें यहां यह पंक्ति कहते हैं - इस बयान यहाँ. नियमित अभिव्यक्ति की शक्ति वे पैटर्न निर्दिष्ट कर सकते हैं कि है सिर्फ अक्षर ठीक नहीं किया गया. हमें बनाते हैं - हमें इस ब्लॉक कहते हैं. तो फिर हम जो अंदर के सभी पढ़ा होगा और फिर एक है - हम सभी को = बनाते हैं, हम लाभ के यहां खोज सकता है कुछ चीजें तो क्या कर रहे हैं? हम अभिव्यक्ति कान के लिए लग सकता है. नहीं बहुत दिलचस्प. कैसे इस बारे में? हम देखेंगे क्या होता है. मैं यह एक समस्या दिया. तो फिर और सब से पहले चीजों की कोई संख्या. तो यह है कि शुरू से ऊपर शायद सब फिर से एक दो बार करने के लिए सब कुछ वापस आ जाना चाहिए. और फिर यहाँ हम नियमित अभिव्यक्ति की शक्ति है कि वे पैटर्न निर्दिष्ट कर सकते हैं यहाँ वर्ण नहीं कर रहे हैं. तो जल्दी अंतिम पुनः के लिए सभी तरह, यह बाईं अधिकांश के साथ शुरू किया और लालची था. हम देखते हैं - हम के लिए और क्या लग सकता है. आप सर्वनाम की तलाश में रुचि रखते थे अगर मैं एक बात मुझे लगता है कि वह और वह तुम एस 0 या 1 के बराबर होने के लिए जाँच कर सकता है और अभिव्यक्ति वह, और कहा कि शायद वापस जाने के लिए नहीं जा रहा है - ओह, मैं वहाँ हम यहाँ, शक्ति, उस दिन से कम कर रहे हैं देख रहे हैं क्योंकि यह वह लौट गया लगता है. हमें इस बात के शुरू में आ गया है कि निर्दिष्ट करने की कोशिश करते हैं. कि दूर चला जाता है तो हम देखते हैं. इसलिए हम वसा कर सकते हैं, और वहाँ हम कुछ भी नहीं मिलता है क्योंकि वह और वह इस वाक्यांश में नहीं होती है. बढ़िया है. ठीक है - तो वापस बिल्ली को यहाँ. तो जटिल पैटर्न मस्तिष्क दर्द हो रहा है. हम इन मुद्दों से बचने के लिए नियमित अभिव्यक्ति का उपयोग तो यही कारण है कि है. तो यहाँ आप के आसपास के साथ खेल सकते हैं कुछ अन्य उपयोगी तरीके हैं. हम आज खोज को देखा, लेकिन आप भी मैच, विभाजन, findall, और समूहों का उपयोग कर सकते हैं. आप बस के अलावा नियमित अभिव्यक्ति के साथ क्या कर सकते हैं तो अन्य ठंडी चीजों पैटर्न की तलाश में एक पैटर्न लेने और सभी मैचों पकड़ रहा है - इसके चर - और फिर बाद में अपने कोड में उन का उपयोग कर. यह काफी सहायक हो सकता है. अन्य चीजों की गिनती हो सकती है. तो हम एक नियमित अभिव्यक्ति पैटर्न की घटनाओं की संख्या गिनती कर सकते हैं और है कि हम के लिए समूहों का उपयोग कर सकते हैं क्या है. और अन्य साधनों के रूप में अच्छी तरह से भी संभव है. तो मैं बस आप नियमित अभिव्यक्ति का उपयोग कर सकते हैं अन्य तरीकों के बारे में थोड़ा और अधिक बात करना चाहता हूँ. तो एक और अधिक उन्नत आवेदन फजी मिलान में है. आप अभिव्यक्ति, जूलियस सीजर, के लिए एक पाठ के लिए देख रहे हैं तो अगर और तुम, अन्य भाषाओं में गयुस जूलियस सीजर या नाम जूलियस सीजर या तो देख तो आप भी उन मूल्यों के लिए कुछ वजन आवंटित करने के लिए चाहते हो सकता है. और यह काफी करीब है - यह एक निश्चित सीमा को पार करती है - तो आप चाहते हैं जूलियस सीजर को स्वीकार करने में सक्षम हो. तो साथ ही कुछ अन्य भाषाओं में उस के लिए कुछ अलग कार्यान्वयन कर रहे हैं. एक आसान सा app करने के लिए ऑनलाइन - यहाँ कुछ अन्य उपकरण, Regex पाल रहे हैं अपने नियमित अभिव्यक्ति का सही ढंग से बना रहे हैं या नहीं. आप अपने डेस्कटॉप से ​​चला सकते हैं कि स्टैंडअलोन उपकरण भी कर रहे हैं अल्ट्रा पिको, और साथ ही बस cookbooks की तरह. आप नियमित अभिव्यक्ति का एक टन शामिल है कि एक प्रोजेक्ट कर रहे हैं तो अगर यह शायद आज के दायरे से बाहर जाने के लिए जगह है. और फिर बस आप यह है कि कैसे आम का भाव देने के लिए ग्रेप यूनिक्स में वहाँ है, पर्ल में बनाया गया है, और सी सी के लिए PCRE वहाँ है और फिर इन सभी अन्य भाषाओं में भी नियमित रूप से अभिव्यक्ति संकुल है कि हम आज का स्वाद मिला अनिवार्य रूप से एक ही वाक्य रचना के साथ कार्य करते हैं. पीएचपी, जावा, रूबी, और इतने पर. गूगल कोड खोज वास्तव में उल्लेख के लायक है, यह में से एक है सार्वजनिक उपयोग की अनुमति देता है कि वहाँ से बाहर अपेक्षाकृत कुछ अनुप्रयोगों नियमित अभिव्यक्ति का उपयोग अपने डेटाबेस. आप गूगल कोड खोज पर देखो तो अगर आप कोड प्राप्त कर सकते हैं आप एक समारोह में इस्तेमाल किया जा सकता है इसका एक उदाहरण के लिए देख रहे हैं, आप अलग अलग मामलों के सभी प्रकार में इस्तेमाल किया जा रहा है कि समारोह को खोजने के लिए एक नियमित अभिव्यक्ति का उपयोग कर सकते हैं. आप fwrite के लिए लग सकता है, और फिर आप लिखने का झंडा लिए देखो या पढ़ सकता है आप उस मामले में इस्तेमाल किया जा रहा fwrite का एक उदाहरण चाहता था. यहाँ तो एक ही वहाँ बात है, और कुछ संदर्भ हैं. यह तो आगे जा रहा है, के रूप में अच्छी तरह से ऑनलाइन उपलब्ध होगा अगर आप अजगर, ग्रेप, पर्ल में देखना चाहता हूँ - तुम सिर्फ कुछ प्रेरणा प्राप्त करना चाहते हैं आप यहाँ सिद्धांत पर अधिक देखने के लिए चाहते हैं या स्थानों से कुछ अच्छा कूद रहे हैं. बहुत बहुत धन्यवाद. [CS50.TV]