0:00
आज का ये video होने वाला है regular expressions के ऊपर कि python में किस तरह से
0:03
regular expressions को use किया जा सकता है and regular expressions होते
0:07
क्या है हो सकता है आपको ये भी ना मालूम हो no problems क्योंकि मैं इस video में
0:10
सब कुछ breakdown करके आप लोग को practically समझाने वाला हूँ। चलते हैं computer screen
0:14
में and let's get started। तो
0:25
चलो यार अब explore करते हैं regular expression को code में देखते हैं किस तरह से काम करता
0:28
है। तो जैसे कि आप देख सकते हो मैंने यहाँ पर एक raple अपनी बना
0:32
रखी है इसमें मैं आ गया हूं। और regular expression समझाने के लिए सबसे पहले
0:35
मैं आप लोगों को ये बताता हूँ कि क्यों use करना है। सबसे पहले तो regular expression
0:39
use नहीं करना है basic matching के लिए basic matching के लिए। basic matching
0:43
के लिए इसलिए use नहीं करना है क्योंकि basic matching के लिए आप लोग in keyword का इस्तेमाल
0:46
कर सकते हो, for loop लगा कर check कर सकते हो। तो there is no point। हाँ
0:50
मुझे पता है complex patterns भी आप लोग check कर सकते हो for loop लगाकर अपना
0:54
दिमाग लगाकर logic लगाकर लेकिन regular expressions बनाए इसलिए गए हैं ताकि
0:58
आपको अपना ज्यादा दिमाग ना लगाना और आपको built in होकर मिल
1:03
जाए। तो regular expression use करने के लिए आपको RE package को import
1:06
करना है। ये एक built in package होता है। तो ये तो एक step
1:10
हो गई जो कि मैं आप लोगों को बताना चाहता था। R module को आप
1:13
import कर सकते हो। ठीक है? इसके बाद दो होती हैं। एक
1:17
तो होता है pattern। ठीक है जैसे मान लो ये मेरा pattern है और
1:21
ये मेरा text है। मान लो मेरा text है, अब जैसे कि
1:25
आप लोग को मालूम ही है कि आप triple quotes में एक python string लिख सकते हो। मान
1:29
लो मैं Wikipedia पे जाता हूँ। मान लो मैं Wikipedia लिखता हूँ
1:33
यहां पर और और एक, हाँ ठीक है कुछ भी कुछ भी
1:39
लिख देता हूं Wikipedia। और इसको copy करता हूं। और यहां पे
1:45
paste कर देता हूं। ठीक है? तो ये text आ गया मेरा, ठीक है? यहां पर मैंने text लिख दिया
1:49
अपना। और इसके अंदर बहुत सारा text है, ये मेरा pattern है
1:53
ये मेरा text है, मुझे करना है अपने text को search pattern
1:57
के through। ठीक है? यानी कि ये pattern मेरे text में कहां कहां
2:00
है ये मुझे देखना है। तो R package यानी कि regular expression की
2:04
सहायता से मैं ये कर सकता हूं। अब मैं ये कैसे करूंगा? अब देखो R
2:07
dot search करके function होता है, ठीक है? तो सबसे पहले तो मैं आप
2:11
लोगों को यहां पर दिखाता हूँ pattern क्या है? Pattern मान लो मैं ढूंढना चाहता
2:14
हूं was मैं कह रहा हूं यार मुझे बता दो was कहाँ कहाँ पर है। तो मैं अगर
2:18
ये करके और print करूँ match तो ये मुझे ये नहीं बताएगा
2:22
कहाँ कहां पर है was but ये मुझे ये जरूर बता देगा
2:25
कि क्या इस text में was है कि नहीं है। ठीक है? तो मैं इसको
2:29
run करूँगा। और ये देखो, यहां पर ये बता रहा है कि भई was
2:33
जो है वो पाया गया और यहाँ पर है आपका ठीक है
2:38
तो इस तरह से मैं बता सकता हूँ कि क्या was है कि नहीं। अब आप लोग कहोगे
2:41
यार ये कि क्या चल रहा है इतना circus करने की जरूरत क्या है? मैं
2:45
आराम से इसको इन keyword की सहायता से भी तो कर सकता था। हाँ आप कर
2:49
सकते थे। लेकिन how about अगर मैं pattern को complex बनाऊं और
2:53
यहाँ पर main regular expression की जो बात है वो शुरू होती है
2:57
अब यहां पर met characters को define करता हूं। Meta characters pattern
3:01
बनाने के लिए इस्तेमाल किए जाते हैं। For example मैं आपसे कहता
3:05
हूं कि यार देखो मुझे यहां पर search करके दो, जैसे कि मान लो यहां पर cyclone लिखा
3:08
हुआ है। और यहां पर लिखा हुआ है cyclone और यहां पर
3:12
लिखा हुआ है diclone। ठीक है? मान लो लिखा हुआ है ऐसा
3:17
अब मैं आपसे कहता हूँ कि मुझे बताओ कि इसमें कहाँकहाँ ऐसा
3:21
icclone लिखा हुआ है जो कि capital से start होता हो। यानी कि
3:25
diclone capital D से diclone चलेगा, capital E से iclone चलेगा, capital
3:29
Z से cyclone चलेगा। मुझे वो search करके दो अब आप घूम
3:33
जाओगे आप कहोगे यार मैं अपना custom logic बना लूँगा, आप ये तो कहोगे। लेकिन
3:37
कहोगे यार मुझे time चाहिए, मुझे सोचना ठीक है? वही सोचना को
3:42
मैं कम करने के लिए आप लोगों को regular expression से मिलवा रहा था। देखो
3:46
अब मैं यहां पर क्या कर सकता हूं? मैं कह सकता हूं कि यहां जो पहला मेरा है वो capital
3:50
letter होना चाहिए। तो यहां पर मैं ऐसे ही लिख देता हूँ literally ठीक है? मैं कहता हूं capital
3:54
letter मेरा होना चाहिए और इसके बाद e clone होना चाहिए। ठीक
3:58
है? capital letter होना चाहिए और फिर I clone होना चाहिए। तो
4:01
ये capital letter होना चाहिए, मैं कुछ इस तरह से लिख सकता
4:05
हूं और मैं यहां पर R लगाऊंगा जिससे कि ये raw string जो है बन जाएगी। Rw
4:09
string क्या होती है अभी अभी आप लोगों को बताता हूँ, जैसे कि मान लो मैंने backslash n लिखा तो literally
4:13
वो एक raw string print करेगा और उसको parse नहीं करेगा escape sequence
4:17
characters को, ठीक है? तो मैंने यहां पर एक square bracket लगाया है। मैंने
4:20
कहा यार देखो यहां पर A से लेके, capital A से लेके
4:25
capital Z तक कोई भी character चलेगा मुझे। और इसके बाद e clone
4:29
ठीक है? तो ये मुझे चलेगा। अब मैंने यहां पर क्या करा है character
4:33
class बना ली। मैंने कहा यार देखो A से Z तक कोई भी character
4:38
मुझे पता है बहुत सारे लोग डरेंगे अभी कहेंगे यार मुझे समझ में नहीं आ रहा लेकिन मेरी बात ध्यान से सुनो। A
4:42
से Z तक कोई भी character, capital A से capital z small
4:45
वाला नहीं चलेगा। capital A से capital Z तक कोई भी character एक
4:49
बार कम से कम आए। ठीक है? मुझे क्या चाहिए वैसा। eye
4:55
clone चाहिए, ठीक है? तो यहां पर आप लोग देखो कि plus का मतलब
4:58
होता है one or more occurrences। तो अगर मैं यहां पर एक plus लगा दूँ, और मैं
5:02
इसको run करूँ। तो आप लोग यहां पर देखना कि cyclone match
5:06
हो गया, ठीक है? अब यहां पर एक है कि Dlone match नहीं हुआ वो
5:09
मुझे देखना क्यों match नहीं हुआ। Dlone match इसलिए नहीं हुआ क्योंकि
5:13
जो R dot search होता है वो पहले match पर रुक जाता है। कहता
5:17
है भाई हो गया अब काम। तो अब आप कहोगे कि यार मुझे ये पता नहीं करना है कि match
5:21
हो रहा है कि नहीं हो रहा है। मतलब मुझे first occurrence नहीं
5:24
चाहिए, मैं first occurrence में interested नहीं हूँ। मैं interested हूँ। सारी
5:29
occurrences में मेरे text में। तो उसके लिए मैं क्या करूंगा, मैं कहूँगा
5:33
match is equal to R dot find iter और मैं बिल्कुल इसी
5:38
तरह pattern और text लिख दूंगा और इसके बाद अब मैं क्या करूंगा for
5:42
match in matches और इसको matches कर देता हूं। और यहां पर
5:46
मैं कह दूंगा print कर दो भाई साहब match। अब ये एक match object है
5:50
ठीक है? मैं इसको run करूँगा तो ये सारे matches मुझे दे देगा। तो
5:56
यहाँ पर, आप देख सकते हो दो matches इसने दिए cyclone और
6:00
Dclone। ठीक है? तो दो matches इसने मुझे दे दिए और ये भी बता दिया कि भाई कहाँ
6:03
कहाँ पर मुझे ये जो इसका span है वो है। अब मैं
6:08
यहाँ पर कुछ इस तरह से कर सकता हूँ। कि मैं कह सकता हूं कि for match
6:11
and matches, match dot span इससे मुझे इसका span मिल जाएगा। अब
6:15
अगर मैं इसका type आप लोगों को दिखाऊं, कि यार ये इसका type क्या है? तब
6:20
आप लोग यहां पर देखो कि match dot span का type जो है वो print
6:23
होकर यहां पर आ जाएगा और वो एक tuple है। इसका मतलब समझे दया। इसका
6:28
मतलब ये हुआ कि मैं कुछ इस तरह का काम कर सकता हूं। मैं कह सकता हूं
6:32
कि matches में मुझे, मुझे क्या करो, जो ये मेरा match है
6:37
कुछ इस तरह से करके दे दो match dot span मतलब अगर मैं
6:41
इस तरह से slicing करूँ इसकी match की, match, match की slicing
6:45
करूँ कुछ इस तरह से such that यहां पर मैं दे दूँ, मान
6:49
लो match dot span zero और यहां पर दे दूँ match dot
6:55
span one। तो क्या होगा कि मुझे वो जो word है cyclone
6:59
diclone वो मिल जाएगा। मिलना चाहिए। अभी कह रहा है no such
7:03
group मैं देखता हूँ यहां पर क्या दिक्कत आ रही है। ah match
7:06
dot span मैंने किया match okay तो मुझे text करना है ना
7:12
कि match तो मैंने कहा text में match dot span zero और
7:16
match dot span one जो है वो मुझे दे दो यानी कि text का
7:20
zero seven मुझे दे दो। अब ये कह रहा है कि string indices must be integers
7:25
अब क्या है कि ये integers नहीं है शायद। तो मैं match dot span
7:28
अगर run करूँ और इसके बाद इसका zero करूँ तो ये कह
7:33
रहा है कि ये integer नहीं है। तो let me see what's wrong। अगर मैं
7:37
इतना print करूँ, match dot span zero तब क्या मुझे देखने को
7:41
मिल रहा है, zero देखने को मिल रहा है। और match dots okay तो मुझे comma नहीं
7:44
लगाना है यार मुझे colon लगाना है sorry तो ये मैंने एक
7:48
छोटी सी mistake कर दी और ये अब चल जाएगा। आप देखना यहाँ पर मुझे cyclone diclone मिल
7:52
जाएगा देखने को। तो इस तरह से आप लोग जो है regular expression की matching कर सकते हैं। Now
7:56
again regular expression एक बहुत topic है। बहुत topic है, ठीक है
8:00
आपको इसमें बहुत सारी चीजें देखने को मिलेंगी। regular expression सीखने में आपको खुद
8:03
को बहुत time लगेगा। तो, इसके लिए मैंने एक link यहाँ पर दिया हुआ
8:07
है जिससे कि आप लोगों को इसके जो सारे meta characters हैं
8:11
उनके बारे में पता चले और बहुत सारी हैं इसमें जिसके बारे में आपको
8:15
जानने की जरूरत है। अब जैसे अगर मैं बात करूँ backslash की, ये mark
8:19
करता है next character as a special character or a literal ठीक
8:23
है for example n matches the character and whereas backslash n matches
8:26
a new line character। ठीक है? तो the sequence double backslash matches backslash
8:30
यानि कि जो specialness होती है character की scape sequence character की वो
8:34
कर देता है। तो यहां पर बहुत सारी चीजें हैं जो कि की जा सकती हैं। तो आपने क्या करना
8:38
है कि जो pattern है उसको देखना है और अच्छा pattern अगर
8:42
आप लिखने सीख गए तो आप लोग को text में से मिल ही जाएगी वो जो
8:46
कि आप चाहते हो या फिर अगर आप लोग ये चाहते हो कि text में वो मौजूद है कि नहीं ये
8:49
find out करना वो भी आप लोग कर सकते हो। ठीक है? तो ये बहुत ज्यादा
8:53
आसान है अगर आप लोगों ने pattern लिखना सीख लिया तो। अब
8:57
मैं यहां पर आप लोगों को एक website के बारे में बताना चाहता हूँ जिसका नाम है, एक तो
9:01
python के docs ये बहुत important website है। ये उन लोगों के लिए है जो कि
9:04
बहुत महारत हासिल करना चाहते हैं regular expressions में। Seriously ये पूरी
9:09
एक किताब के बराबर आपको एक छोटी किताब के बराबर अगर आप लोग इसको
9:12
यहां से शुरू करेंगे बहुत detailed documentation है। लेकिन हाँ यार एक
9:16
बार आपने hundred days of code complete कर लिया उसके बाद आप चाहते हो regular expressions
9:20
का बादशाह बनने तो आप लोग यहाँ पर आके बन सकते हो। ठीक है? एक
9:23
और website जिसके बारे में बात करना चाहता हूँ वो है। मैं
9:27
यार उसका नाम भूल रहा हूँ हूं but I am sure कि ये आ गई देखो R X R Google पे आएगी
9:30
मुझे पता था। अब देखो यहां पर A to Z ठीक है फिर ये bracket से
9:34
group बन जाता है। ठीक है? जैसे मैं आप लोगों को बताता हूं अगर मैंने ये bracket लगाया, ठीक है? और
9:38
मैं कहता हूं कि यार मुझे चाहिए। इनमें से कोई एक या तो मुझे
9:41
H चाहिए या फिर मुझे W चाहिए या फिर मुझे R चाहिए। ठीक
9:45
है? और back slash W का क्या मतलब है आप over करोगे तो ये बता रहा
9:48
है matches any word character। ठीक है? कोई भी word character और एक
9:52
से ज्यादा word character। अब आप लोग देखो मैंने यहाँ पर HWR plus
9:56
और back slash W लिखा है इसका मतलब यहाँ पर ये है कि H
10:00
W या R में से कोई एक character और उसके बाद backslash
10:04
W और इसके बाद plus लिखा है इसका ये मतलब हुआ कि ये कोई भी
10:09
कोई भी एक character कितनी भी बार ले लेगा। जैसे कि HWR से start
10:13
होना चाहिए और उसके बाद कितने भी character तो यहाँ पर इसने Harry match कर दिया, role match कर दिया
10:16
reference match कर दिया। यहाँ पर एक cheat sheet है अगर यहाँ cheat sheet पर click करोगे आप लोग
10:20
तो आप लोग कई सीख सकते हो। मैं यहां पर आप लोगों को बताता हूँ dot का मतलब any character
10:24
except new line। तो अगर मैं यहां पर H W R के बाद एक dot
10:27
लगा दूँ, तो यहाँ पर ये क्या करेगा? दो characters को match करेगा HWR
10:31
में से कोई भी एक और इसके बाद कोई भी एक character। तो देखो R E H E
10:35
R E इसने जो है match कर दिया। अगर मैं double dot यहाँ पर लगा दूँ तो तीन characters
10:39
match करेगा ये। अगर मैं यहां पर एक group बना दूँ, कि भाई R
10:42
E मतलब SWR के बाद दो characters होंगे और उसके बाद मान लो मैं
10:46
कहता हूं E होगा। तो ये ये ये देखो ये match कर दिया है इसने R E F E
10:50
है ना? तो यहां पर मैंने कहा HWR में से कोई भी character हो फिर इसके बाद यहां
10:53
पर E हो। अब हो सकता है कि मैं इसको ये चाहूं कि यार E भी हो
10:57
सकता है और E के साथ साथ R भी हो सकता है
11:01
तो इसने ये भी match कर लिया। तो इस तरह से आप लोग जो है patterns बना
11:04
सकते हो और python के अंदर, आप लोग यहाँ तो match use
11:08
कर सकते हो। अभी क्या होता है ना कि अगर आप लोग match use करते हो तो match
11:12
none return करता है अगर match find नहीं हो पाए तो जैसे मान लो मैंने
11:16
ये कर दिया यहां पर तो ये तो कुछ भी show नहीं करेगा क्योंकि जो
11:19
matches है वो खाली है लेकिन अगर मैं ये दिखाऊँ आपको तो ये none return करेगा
11:23
आपको दिखाता हूँ यहाँ पर print match जो है none return करेगा क्योंकि ये pattern match
11:27
हुआ ही नहीं। ठीक है? तो इस तरह से आप लोग जो है अपनी regular expressions की
11:30
journey को start कर सकते हो। मुझे पता है सा सा complicated
11:34
topic है अगर आप लोग एक beginner हो तो जब मैंने start किया था regular expression सीखना
11:38
तो मुझे भी लगता था कि यार इसकी मुझे जरूरत नहीं है। but जैसे जैसे आप programming
11:41
में आगे हो तो java script में भी ये आएगा। ये आपको हर
11:45
जगह देखने को मिलेगा almost हर programming language में इसका support आपको देखने को मिलेगा और
11:48
ये आसान बनाएगा आप लोगों के लिए मुश्किल नहीं बनाएगा। तो इसको सीखें
11:52
और ये जो website है RXR dot com let me link this
11:57
here ताकि आप लोग, इसको अच्छी तरह से जो है। explore कर
12:02
पाएं। तो मैं इसको यहाँ डाल देता हूँ। ठीक है? तो ये website जो है आप सभी लोग
12:06
जरूर visit करें, इसकी cheat sheet देखें और इसमें कई चीजें हैं जो कि आप लोग को
12:10
समझ में आएंगी और सबसे इस website की बात ये है कि ये explain करता है regular expression
12:14
को कि कैसे क्या काम कर रही है, कब क्यों? ये match
12:20
हो रही है और ये match नहीं हो रही है तो ये सारी जो है आप लोग यहाँ पर click
12:23
करके भी लगा सकते हो इसके साथ play around कर सकते हो। So I hope कि आप लोगों को regular
12:27
expression समझ में आया होगा और आप लोग जो है इसको practice जब
12:30
तक नहीं करोगे ना तब तक आपको समझ में नहीं आने वाला। So अभी के लिए इस video
12:34
में इतना ही guys अगर आप लोगों ने अभी तक ये playlist access नहीं करी है
12:38
तो इसको जरूर करना। Thank you so much guys for watching this video and I will