1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [સેમિનાર: નિયમિત સમીકરણો સાથે મેચિંગ પેટર્ન] 2 00:00:02,000 --> 00:00:04,000 [જોન Mussman-હાર્વર્ડ યુનિવર્સિટી] 3 00:00:04,000 --> 00:00:07,220 [આ છે CS50.-CS50.TV] 4 00:00:07,780 --> 00:00:11,610 ઠીક છે. ઠીક છે, દરેક આપનું સ્વાગત છે. આ CS50 2012 છે. 5 00:00:11,780 --> 00:00:16,610 મારું નામ જ્હોન છે, અને હું નિયમિત સમીકરણો વિશે આજે વાત કરવામાં આવશે. 6 00:00:16,610 --> 00:00:22,530 નિયમિત સમીકરણો મુખ્યત્વે એક સાધન છે, પરંતુ ઘણી વખત ઉપયોગ 7 00:00:22,530 --> 00:00:28,650 કોડ સક્રિયપણે અનિવાર્યપણે પેટર્ન અને શબ્દમાળાઓ મેચ કરવા માટે. 8 00:00:28,650 --> 00:00:33,800 તેથી અહીં xkcd માંથી એક વેબ કોમિક છે. 9 00:00:34,440 --> 00:00:42,370 આ કોમિક માં કિલર છે જ્યાં એક હત્યાનું રહસ્ય છે 10 00:00:42,370 --> 00:00:47,860 વેકેશન પર કોઇની અનુસરતા, અને પાત્ર હોય છે 11 00:00:47,860 --> 00:00:52,500 એક સરનામું શોધી ઇમેઇલ્સ 200 મેગાબાઇટ્સ દ્વારા શોધો. 12 00:00:52,500 --> 00:00:56,090 અને તેઓ નિયમિત સમીકરણો જાણે જ્યારે કોઇક આપી વિશે છે - 13 00:00:56,090 --> 00:01:00,550 અનુમાન એક સુપરહીરો - swoops નીચે અને અમુક કોડ લખે છે 14 00:01:00,550 --> 00:01:02,970 અને હત્યા રહસ્ય નિવારે છે. 15 00:01:02,970 --> 00:01:07,370 તેથી અનુમાન છે કે તમે કરવા અધિકારયુક્ત આવશે કે કંઈક હશે 16 00:01:07,370 --> 00:01:09,370 આ પરિસંવાદ પછી. 17 00:01:09,370 --> 00:01:12,250 અમે હમણાં જ ભાષા માટે સંક્ષિપ્ત પરિચય પૂરો પાડવા માટે જતા હોય છે 18 00:01:12,250 --> 00:01:16,770 અને તમે તમારા પોતાના પર વધારે સ્ત્રોતો પછી જવા માટે પૂરતી wherewithal આપે છે. 19 00:01:17,680 --> 00:01:21,700 >> તેથી નિયમિત સમીકરણો આ જેમ મૂળભૂત રીતે જુઓ. 20 00:01:22,930 --> 00:01:25,550 આ રૂબી માં નિયમિત સમીકરણ છે. 21 00:01:25,550 --> 00:01:29,280 તે ભાષાઓમાં ભયંકર અલગ નથી. 22 00:01:29,690 --> 00:01:37,630 અમે રૂબી માં નિયમિત સમીકરણ શરૂ અને માર્ક કરવા માટે માત્ર સ્લેશ પર હોય છે. 23 00:01:37,630 --> 00:01:42,880 અને આ ઇમેઇલ સરનામું પેટર્ન જોવા માટે નિયમિત અભિવ્યક્તિ છે. 24 00:01:42,880 --> 00:01:49,160 તેથી અમે પ્રથમ બીટ પર કોઈ નંબર પાત્ર માટે જુએ છે જુઓ. 25 00:01:50,500 --> 00:01:54,880 ઇમેઇલ સરનામાં ઘણીવાર એક મૂળાક્ષર અક્ષર સાથે શરૂ કરવા માટે હોય છે, કારણ કે તે છે. 26 00:01:55,460 --> 00:01:59,330 અને પછી કોઇ ખાસ અક્ષર @ પ્રતીક દ્વારા અનુસરીને. 27 00:01:59,330 --> 00:02:03,260 અને પછી ડોમેન નામ માટે આ જ બાબત. 28 00:02:03,260 --> 00:02:10,030 અને પછી 2 વચ્ચે અને 4 અક્ષરો તેથી ચોખ્ખી., જે. Com માટે જુઓ, અને. 29 00:02:10,850 --> 00:02:13,200 કે જેથી નિયમિત સમીકરણ અન્ય ઉદાહરણ છે. 30 00:02:13,200 --> 00:02:17,270 તેથી નિયમિત સમીકરણો ટેક્સ્ટની patters શોધવા માટે પ્રોટોકોલ છે. 31 00:02:17,270 --> 00:02:21,130 તેઓ સરખામણીઓ, પસંદગીઓ, અને ફેરબદલી કરો. 32 00:02:21,690 --> 00:02:27,970 ડિરેક્ટરીમાં 54 માં સમાપ્ત થતા તમામ ફોન નંબરો શોધવા થયેલ છે ત્રીજા ઉદાહરણ છે. 33 00:02:27,970 --> 00:02:34,360 તેથી CS50 ડિરેક્ટરી ઉપર ડેવિડ rips પહેલાં અમે માટે શોધ કરી શકે છે 34 00:02:34,360 --> 00:02:40,450 અમે કૌંસ છે, જ્યાં પેટર્ન પછી 3 નંબરો પછી, ફકરા કે વાકયમાં વધારાનાં નિરથક એવાં શબ્દ, પદ કે વાક્ય અંત 35 00:02:40,450 --> 00:02:44,070 3 વધુ નંબરો, આડંબર, 2 નંબરો, અને પછી 54. 36 00:02:44,070 --> 00:02:48,310 અને તે અમે તે શોધવા માટે નિયમિત સમીકરણ સાથે આવે છે કે કેવી રીતે આવશ્યક હશે. 37 00:02:49,150 --> 00:02:52,960 >> તેથી ત્યાં છે - અમે CS50 માં કેટલીક વસ્તુઓ થાય છે જેવી થોડી છે કે 38 00:02:52,960 --> 00:02:59,740 જેથી નિયમિત સમીકરણો, - ઉદાહરણ તરીકે - પાંચ dictionary.C ફાઈલમાં 39 00:02:59,740 --> 00:03:04,720 આ જોડણી તપાસ સમસ્યા સમૂહ માટે તમે fscanf ઉપયોગ કર્યો હોઈ શકે 40 00:03:04,720 --> 00:03:07,930 જો શબ્દકોશ માંથી એક શબ્દ વાંચી છે. 41 00:03:07,930 --> 00:03:16,240 અને તમે ટકાવારી 45s 45 અક્ષરો એક શબ્દમાળા માટે જોઈ છે જોઈ શકે છે. 42 00:03:16,240 --> 00:03:20,020 તેથી તે અવિકસિત નિયમિત સમીકરણ જેવી કંઈક છે. 43 00:03:21,150 --> 00:03:26,060 અને તમે ત્યાં બિલ ફિટ છે કે જે કોઈપણ 45 અક્ષરો હોઈ શકે છે 44 00:03:26,060 --> 00:03:28,080 અને તે રન બનાવ્યો. 45 00:03:28,080 --> 00:03:33,480 એકદમ વેબ પ્રોગ્રામિંગ સમસ્યા અને પછી બીજા ઉદાહરણ 46 00:03:33,480 --> 00:03:40,760 PHP માટે ડિસ્ટ્રોને કોડ સુયોજિત અમે ખરેખર સરળ નિયમિત સમીકરણ ધરાવે છે. 47 00:03:40,760 --> 00:03:46,790 અને આ એક માત્ર માત્ર વેબ પાનું પસાર થયેલ છે કે નહીં તે તપાસવા માટે જોઈ છે 48 00:03:46,790 --> 00:03:51,940 ક્યાં લૉગિન સાથે બંધબેસે અથવા રજીસ્ટર લૉગઆઉટ. PHP,. 49 00:03:52,220 --> 00:03:57,910 અને પછી તે નિયમિત સમીકરણ સાથે બંધબેસતી પર આધારિત છે સાચું કે ખોટું પરત. 50 00:03:59,400 --> 00:04:01,740 >> તેથી જ્યારે તમે નિયમિત સમીકરણ ઉપયોગ કરી શકું? 51 00:04:01,740 --> 00:04:04,820 શા માટે તમે અહીં આજે છે? 52 00:04:05,330 --> 00:04:08,480 કંઈક કે ત્યાં જ્યારે જેથી તમે નિયમિત સમીકરણ ઉપયોગ કરવા માંગો છો નથી 53 00:04:08,480 --> 00:04:11,640 પણ વધુ સરળતાથી તમારા માટે કામ કરે છે. 54 00:04:11,640 --> 00:04:15,510 તેથી XML અને HTML ખરેખર ખૂબ મુશ્કેલ છે 55 00:04:15,510 --> 00:04:18,480 અમે થોડી માં જોશો તરીકે માટે નિયમિત સમીકરણો લખવા માટે. 56 00:04:19,110 --> 00:04:23,280 તેથી તે ભાષાઓ માટે સમર્પિત parsers છે. 57 00:04:24,170 --> 00:04:30,060 તમે પણ વારંવાર વેપાર ન અને ચોકસાઈ સાથે ઠીક કરવાની જરૂર. 58 00:04:30,060 --> 00:04:36,220 તમે પ્રયાસ કરી રહ્યા હોય, તો - તેથી અમે એક ઇમેઇલ સરનામા માટે નિયમિત સમીકરણ જોયું 59 00:04:37,370 --> 00:04:42,590 પરંતુ જો તમે ચોક્કસ ઇમેઇલ સરનામું ઇચ્છતા અને ધીમે ધીમે કહે છે 60 00:04:42,590 --> 00:04:48,570 તે વધુ ચોક્કસ બની હતી તરીકે નિયમિત સમીકરણ વધુ જટિલ બની શકે છે. 61 00:04:49,580 --> 00:04:52,260 કે જેથી એક વેપાર બંધ રહેશે. 62 00:04:52,260 --> 00:04:55,330 તમે ઠીક નિયમિત સમીકરણ સાથે બનાવે છે કે નહીં તેની ખાતરી થાય છે. 63 00:04:55,330 --> 00:04:57,920 તમે શોધી રહ્યા છો બરાબર શું ખબર હોય તે વધુ અર્થમાં બનાવવા શકે છે 64 00:04:57,920 --> 00:05:02,070 સમય માં મૂકવામાં અને વધુ અસરકારક પાર્સર લખવા માટે. 65 00:05:02,070 --> 00:05:06,980 અને છેલ્લે નિયમિતતા સાથે ઐતિહાસિક મુદ્દો છે 66 00:05:06,980 --> 00:05:08,940 અભિવ્યક્તિઓ અને ભાષા છે. 67 00:05:08,940 --> 00:05:12,960 નિયમિત સમીકરણો ખરેખર વધુ શક્તિશાળી કરતાં હોય છે 68 00:05:12,960 --> 00:05:16,450 દીઠ નિયમિત સમીકરણો એક સામાન્ય અર્થમાં કહે છે. 69 00:05:17,130 --> 00:05:20,150 >> તેથી હું સામાન્ય સિદ્ધાંત માં પણ અત્યાર સુધી જવા માંગતા નથી, 70 00:05:20,150 --> 00:05:24,000 પરંતુ મોટા ભાગની ભાષાઓ અમે ખરેખર માં કોડ નિયમિત નથી. 71 00:05:24,000 --> 00:05:29,110 નિયમિત સમીકરણો ક્યારેક તે બધા સુરક્ષિત ગણવામાં આવતા નથી અને આ બાબત શા છે. 72 00:05:29,670 --> 00:05:33,150 તેથી મૂળભૂત ભાષા માટે ચોમ્સ્કી સ્તરીકરણની છે 73 00:05:33,150 --> 00:05:38,400 અને નિયમિત સમીકરણો યુનિયન, શૃંખલીકરણ ઉપયોગ બિલ્ડ છે 74 00:05:38,400 --> 00:05:41,810 અને અમે થોડી મિનિટો માં Kleene સ્ટાર કામગીરી જોશે. 75 00:05:43,130 --> 00:05:48,860 જો તમને રસ હોય તો થિયરીમાં હૂડ હેઠળ ત્યાં ચાલુ તદ્દન ઘણો છે. 76 00:05:50,360 --> 00:05:55,880 >> સંક્ષિપ્ત ઇતિહાસ તેથી - માત્ર અહીં સંદર્ભ - નિયમિત સેટ આવ્યા 77 00:05:55,880 --> 00:05:59,580 1950 માં, અને પછી અમે તે સરળ સંપાદકો હતી 78 00:05:59,580 --> 00:06:03,300 નિયમિત સમીકરણો પ્રાઇમ - માત્ર શબ્દમાળાઓ માટે શોધ. 79 00:06:03,570 --> 00:06:09,110 Grep - જે આદેશ વાક્ય સાધન છે - એક પ્રથમ હતું 80 00:06:09,110 --> 00:06:14,160 1960 માં નિયમિત સમીકરણો પ્રાઇમ કે ખૂબ જ લોકપ્રિય સાધનો. 81 00:06:14,160 --> 00:06:20,560 આ 80 ના દશકના માં, પર્લ બનાવવામાં આવી હતી - એક પ્રોગ્રામિંગ ભાષા છે કે 82 00:06:20,560 --> 00:06:24,110 ખૂબ આગવી નિયમિત સમીકરણો સમાવિષ્ટ છે. 83 00:06:24,550 --> 00:06:30,130 અને પછી વધુ તાજેતરમાં અમે પર્લ સુસંગત નિયમિત સમીકરણ આવી હોય 84 00:06:30,130 --> 00:06:35,870 મૂળભૂત રીતે જ વાક્યરચના ખૂબ ઉપયોગ છે કે અન્ય ભાષાઓમાં પ્રોટોકોલ્સ. 85 00:06:36,630 --> 00:06:39,840 કોર્સ સૌથી મહત્વપૂર્ણ ઘટના 2008 માં હતો 86 00:06:39,840 --> 00:06:43,040 જ્યાં પ્રથમ રાષ્ટ્રીય નિયમિત સમીકરણો દિવસ આવી હતી 87 00:06:43,040 --> 00:06:47,350 તમે તે ઉજવણી કરવા માંગો છો, તો જે હું છે જૂન 1 માને છે. 88 00:06:48,430 --> 00:06:50,840 >> અહીં ફરીથી છે, માત્ર થોડી વધુ સિદ્ધાંત. 89 00:06:52,180 --> 00:06:55,320 તેથી નિયમિત સમીકરણો નિર્માણ એક દંપતિ અલગ રસ્તા છે. 90 00:06:55,950 --> 00:07:02,050 એક સરળ રસ્તો તમને જતા હોય છે કે અભિવ્યક્તિ બીલ્ડ કરવા માટે છે 91 00:07:02,050 --> 00:07:07,500 અર્થઘટન શબ્દમાળા પર ચાલે છે - મૂળભૂત કે મીની-કાર્યક્રમ થોડા બીલ્ડ 92 00:07:07,500 --> 00:07:11,870 શબ્દમાળા ટુકડાઓ પૃથ્થકરણ અને જોશે, "ઓહ, આ નિયમિત સમીકરણ ફિટ નથી અથવા નથી?" 93 00:07:12,250 --> 00:07:14,250 અને પછી ચલાવો. 94 00:07:14,250 --> 00:07:17,300 જો તમે ખૂબ નાની નિયમિત સમીકરણ છે, તેથી જો આ સંભવિત છે 95 00:07:17,300 --> 00:07:19,380 આમ કરવું એ સૌથી કાર્યક્ષમ રીતે. 96 00:07:20,090 --> 00:07:25,420 અને પછી તમે જો - બીજા વિકલ્પ પુનઃરચીને રાખે છે 97 00:07:25,420 --> 00:07:30,260 અભિવ્યક્તિ તમે જાઓ, અને જે અનુકરણ શક્યતા છે. 98 00:07:30,440 --> 00:07:37,690 અને નિયમિત સમીકરણ algorithms અંતે શરૂઆતના આ પ્રયાસો હતા 99 00:07:37,690 --> 00:07:44,330 પ્રમાણમાં સરળ અને પ્રમાણમાં ઝડપી, પરંતુ રાહત ઘણો નથી. 100 00:07:44,330 --> 00:07:47,500 તેથી વસ્તુઓ અમુક અમે જોવા જતા હોય છે કે જે પણ કરવું 101 00:07:47,500 --> 00:07:52,860 આજે આપણે વધુ જટિલ નિયમિત અભિવ્યક્તિ કરવા માટે આવી હોય 102 00:07:52,860 --> 00:07:56,650 સંભવિત ખૂબ જ ધીમી હોય છે કે અમલીકરણો; ધ્યાનમાં સહન કંઈક છે કે જેથી 103 00:07:57,510 --> 00:08:02,920 હુમલો વિવિધ નિયમિત સમીકરણો અસ્વીકાર પણ છે 104 00:08:02,920 --> 00:08:08,330 આ નવી અમલીકરણ માટે સંભવિત શોષણ કે 105 00:08:08,330 --> 00:08:10,930 ખૂબ જ જટિલ બની નિયમિત સમીકરણો. 106 00:08:11,570 --> 00:08:15,650 અને અમે બફર ઓવરફ્લો હુમલાઓ માં જોયું કે ખૂબ જ અર્થમાં, 107 00:08:15,650 --> 00:08:21,610 તમે કામ કે પૂનરાવર્તિત આંટીઓ બનાવીને હુમલા છે 108 00:08:21,610 --> 00:08:24,400 મેમરી ક્ષમતા ઘેરી લીધા. 109 00:08:24,780 --> 00:08:29,540 અને જે રીતે દ્વારા Regexen નિયમિત સમીકરણ સત્તાવાર plurals એક છે 110 00:08:29,540 --> 00:08:32,890 એન્ગ્લો સેક્સોન માં આખલા માટે અનુરૂપતા. 111 00:08:33,500 --> 00:08:40,169 >> ઠીક છે, જેથી Python લાઇબ્રેરી વ્યક્તિ અહીં તમે ઘણા મેક્સ હોય છે, 112 00:08:40,169 --> 00:08:43,860 જેથી તમે વાસ્તવમાં તમારા સ્ક્રીન પર આ અપ ખેંચી શકો છો. 113 00:08:43,860 --> 00:08:47,480 નિયમિત સમીકરણો Python માં બાંધવામાં આવે છે. 114 00:08:48,070 --> 00:08:53,020 અને તેથી Python આ લિંક પર Macs અને ઓનલાઇન પણ ઉપલબ્ધ પર preloaded આવે છે. 115 00:08:53,770 --> 00:08:57,350 તમે જોઇ રહ્યા છો તેથી જો તમે થોભો અને તમે Python હોય તેની ખાતરી કરી શકો છો 116 00:08:58,080 --> 00:09:00,170 અમે અહીં આસપાસ રમવા તરીકે. 117 00:09:00,780 --> 00:09:06,420 તમે ફક્ત તમારા કમ્પ્યુટર માં એ Python લખો તેથી જો જાતે ઑનલાઇન છે, 118 00:09:06,420 --> 00:09:10,500 જો તમે આવૃત્તિ ટર્મિનલ માં આવે છે કે નહીં તે જોવા આવશે. 119 00:09:11,070 --> 00:09:17,720 તેથી હું Python ની આવૃત્તિ 2 તેમજ ચીટ શીટ માટે જાતે લિંક પૂરી પાડી હતી. 120 00:09:17,720 --> 00:09:23,100 ત્યાં Python ની આવૃત્તિ 3 છે, પરંતુ તમારા મેક જરૂરી નથી 121 00:09:23,100 --> 00:09:25,130 preloaded સાથે આવે છે. 122 00:09:25,130 --> 00:09:27,360 તેથી ભયંકર અલગ નથી. 123 00:09:27,360 --> 00:09:33,270 ઠીક છે, જેથી Python માં નિયમિત સમીકરણો મદદથી કેટલાક બેઝિક્સ. 124 00:09:34,080 --> 00:09:42,650 >> તેથી અહીં હું ખૂબ જ સરળ અભિવ્યક્તિ માટે વપરાય છે, તેથી હું Python આયાત ફરી હતી 125 00:09:43,750 --> 00:09:47,070 અને પછી re.search પરિણામ લીધો હતો. 126 00:09:47,070 --> 00:09:49,910 અને શોધ 2 દલીલો લે છે. 127 00:09:49,910 --> 00:09:56,040 પ્રથમ નિયમિત અભિવ્યક્તિ છે, અને બીજા લખાણ છે 128 00:09:56,040 --> 00:09:58,290 અથવા તમે પૃથ્થકરણ કરવા માંગો છો સ્ટ્રિંગ. 129 00:09:58,290 --> 00:10:01,210 અને પછી હું result.group છપાયેલ. 130 00:10:01,580 --> 00:10:05,860 તેથી આ અમે આજે જોવા માટે જતા હોય છે 2 મૂળભૂત વિધેયો છે 131 00:10:06,790 --> 00:10:10,170 નિયમિત સમીકરણો વિશે શીખવા. 132 00:10:10,170 --> 00:10:12,880 તેથી ફક્ત આ નિયમિત સમીકરણ અહીં તોડી 133 00:10:12,880 --> 00:10:21,770 એચ અને પછી \ W અને પછી મીટર જેથી \ W માત્ર ત્યાં કોઈપણ મૂળાક્ષર અક્ષર સ્વીકારે છે. 134 00:10:21,850 --> 00:10:26,820 તેથી અહીં અમે અન્ય મૂળાક્ષર અક્ષર "ક" માટે શોધી અને પછી આવે છે 135 00:10:26,820 --> 00:10:30,060 અને પછી મીટર છે, તેથી અહીં હેમ સાથે મેળ કરશે કે 136 00:10:30,060 --> 00:10:34,480 માં, "અબ્રાહમ લિંકન અને હેમ સેન્ડવિચ." 137 00:10:35,040 --> 00:10:37,150 આ તે જૂથના પરિણામ છે. 138 00:10:37,680 --> 00:10:43,130 અમે શું કરી શકો છો કે જે અન્ય વસ્તુ Python માં લખાણ અમારી પહેલાં શબ્દમાળાઓ ઉપયોગ છે. 139 00:10:43,130 --> 00:10:46,220 તેથી હું આગળ જાઓ અને અહીં સુધી ખેંચી જશે ધારી. 140 00:10:46,220 --> 00:10:49,210 Python આયાત ફરી. 141 00:10:50,070 --> 00:10:54,000 અને હું એક જ વસ્તુ કરવા માટે જ હોય ​​-, અમને લખાણ કહે છે કે દો 142 00:10:55,390 --> 00:11:00,800 "અબ્રાહમ," અમને ઝૂમ દો - ત્યાં આપણે જવું. 143 00:11:01,610 --> 00:11:06,430 લખાણ "અબ્રાહમ હેમ ખાય છે." છે, 144 00:11:07,460 --> 00:11:15,260 ઠીક છે, અને પછી = re.search પરિણમી. 145 00:11:16,260 --> 00:11:22,020 અને પછી અમારી અભિવ્યક્તિ-h હોઈ શકે છે, અને પછી હું કોઈ મીટર કરશે. 146 00:11:22,020 --> 00:11:26,280 તેથી કોઈ માટે, ફક્ત આંકડા સહિત નવી લીટી નથી કે કોઇ પણ અક્ષર લે છે 147 00:11:26,280 --> 00:11:28,650 ટકાવારી ચિહ્નો છે કે, જેમ ખાવા. 148 00:11:28,650 --> 00:11:38,030 અને પછી ટેક્સ્ટ - તેજી - અને પછી result.group-હા. 149 00:11:38,030 --> 00:11:41,820 કે જેથી અહીં મૂળભૂત વિધેયો અમલ કરવા માટે કેટલી છે. 150 00:11:42,300 --> 00:11:55,110 કે ક્રેઝી લખાણ - - અમે કે જે લખાણ રિંગ હોય તો પાછા સ્લેશ ઘણાં કહે છે સમાવેશ થાય છે 151 00:11:55,110 --> 00:12:01,180 અને અંદર શબ્દમાળાઓ અને એસ્કેપ ક્રમ જેવો શકે તેવી વસ્તુઓ, 152 00:12:01,180 --> 00:12:08,480 પછી અમે કદાચ સ્વીકારવામાં આવે છે તેની ખાતરી કરવા માટે કાચા લખાણ ઈનપુટ ઉપયોગ કરવા માંગો છો. 153 00:12:08,480 --> 00:12:14,120 અને માત્ર જેમ દેખાય છે. 154 00:12:14,120 --> 00:12:17,810 આપણે ત્યાં તેમને દરેક માટે જોઈ હતી તેથી જો અમે કંઈ મળી ન જોઈએ. 155 00:12:19,070 --> 00:12:21,680 પરંતુ તમે તેને અમલમાં કેવી રીતે છે; માત્ર પહેલા ઓફ શબ્દમાળા 156 00:12:21,680 --> 00:12:24,990 નિયમિત સમીકરણ તમે અક્ષર R મૂકો. 157 00:12:26,150 --> 00:12:30,260 >> ઠીક છે, જેથી અમને ચાલુ રાખવા દો. 158 00:12:30,260 --> 00:12:33,730 અધિકાર બધા - તેથી અમને અહીં એક દંપતિ પુનરાવર્તિત પેટર્ન જોવા દો. 159 00:12:34,750 --> 00:12:39,150 તેથી જો તમે કરવા માંગો છો કે જે એક વસ્તુ વસ્તુઓ પુનરાવર્તન છે 160 00:12:40,040 --> 00:12:42,480 તમે લખાણ મારફતે શોધ કરતા હોય છે. 161 00:12:42,480 --> 00:12:48,300 તેથી બો કોઈપણ સંખ્યાની દ્વારા અનુસરવામાં કરવા માટે - જો તમે એબી * નથી. 162 00:12:48,630 --> 00:12:51,620 અને પછી અન્ય નિયમો શ્રેણીબદ્ધ ખૂબ હોય છે. 163 00:12:51,620 --> 00:12:54,380 અને જો તમે આ અપ બધા જોઈ શકો છો; હું માત્ર કેટલાક સ્કોર પડશે 164 00:12:54,380 --> 00:12:57,630 સૌથી સામાન્ય રાશિઓ ઉપયોગ કરે છે. 165 00:12:57,630 --> 00:13:03,920 તેથી AB + કોઇ એન બો 0 કરતા વધારે આવે છે. 166 00:13:04,510 --> 00:13:08,000 એબી? એક બો 0 અથવા 1 અનુસરતા. 167 00:13:09,190 --> 00:13:18,580 એબી {n} એક બી એન અનુસરતા, અને પછી તેથી પર છે. 168 00:13:18,580 --> 00:13:22,820 તમે સર્પાકાર કૌંસ 2 નંબરો હોય તો તમે શ્રેણી સ્પષ્ટ છે 169 00:13:23,300 --> 00:13:25,440 કે કદાચ મેળ ખાતી હોઈ શકે છે. 170 00:13:26,390 --> 00:13:30,420 તેથી અમે એક મિનિટ માં એક દંપતિ પુનરાવર્તિત પેટર્ન પર વધુ ધ્યાન આપીશું. 171 00:13:31,960 --> 00:13:42,300 તેથી અહીં સાધનો બંધબેસતા આ પેટર્ન વાપરી રહ્યા હોય ત્યારે ધ્યાનમાં રાખવા 2 વસ્તુઓ. 172 00:13:42,300 --> 00:13:52,120 અમે આ હાશિમ જોવા માંગો છો તેથી કહે છે, "અબ્રાહમ લિંકન હેમ સેન્ડવીચ બનાવે છે." 173 00:13:52,120 --> 00:13:55,230 તેથી હું અબ્રાહમ માટે અબ્રાહમ લિંકનની નામ બદલીને. 174 00:13:55,230 --> 00:14:00,290 અને હવે અમે આ શોધ કાર્ય દ્વારા પરત આવે છે તે માટે શોધી રહ્યા છે 175 00:14:00,290 --> 00:14:03,270 અને તે માત્ર આ કિસ્સામાં હેમ આપે છે. 176 00:14:03,620 --> 00:14:08,080 અને તે શોધ માત્ર કુદરતી ડાબી સૌથી કતાર લે છે, કારણ કે આ કરે છે. 177 00:14:08,080 --> 00:14:12,130 અને તમે અન્યથા સ્પષ્ટ સિવાય બધા નિયમિત સમીકરણો કે શું કરશે. 178 00:14:12,830 --> 00:14:18,880 અમે બધા શોધવા માટે ઈચ્છતો હોય તો તે માટે એક કાર્ય છે - બધા શોધો. 179 00:14:18,880 --> 00:14:35,100 તેથી માત્ર બધા = re.findall ('h.m', ટેક્સ્ટ) જેવો શકે છે 180 00:14:35,100 --> 00:14:44,540 અને પછી) (all.group. 181 00:14:44,540 --> 00:14:51,040 બધા હેમ અને હેમ બંને પેદા કરે છે; દરેક હેમ આ કિસ્સામાં બંને અબ્રાહમ માં શબ્દમાળાઓ છે. 182 00:14:51,610 --> 00:14:55,110 કે જેથી અન્ય વિકલ્પ છે. 183 00:14:56,250 --> 00:15:06,940 >> મહાન. ધ્યાનમાં રાખવા માટે અન્ય વસ્તુ નિયમિત સમીકરણો તર્ક સૌથી લઇ જાય છે. 184 00:15:06,940 --> 00:15:09,520 અમને આ ઉદાહરણમાં જોવા દો. 185 00:15:10,200 --> 00:15:16,070 અમે અહીં ડાબી સૌથી શોધ હતી, અને પછી હું એક મોટી શોધ પ્રયાસ કર્યો 186 00:15:16,070 --> 00:15:18,800 જો Kleene સ્ટાર ઓપરેટર મદદથી. 187 00:15:18,800 --> 00:15:24,180 તેથી માટે, "અબ્રાહમ લિંકન, હેમ સેન્ડવીચ બનાવે છે" અને હું માત્ર પાછા મળી 188 00:15:24,180 --> 00:15:26,280 પરિણામે મીટર. 189 00:15:26,280 --> 00:15:31,670 કે ભૂલ માટે કારણ હું કોઇ નંબર લેવામાં આવ્યા છે શકે છે હતા 190 00:15:31,670 --> 00:15:36,140 હું એચ અને મીટર વચ્ચે જવા કંઈપણ સ્પષ્ટ ન હતી કારણ કે-h છે. 191 00:15:36,140 --> 00:15:42,010 મીટર હતું કે ત્યાં માત્ર એક જ ઉદાહરણ - તે મીટર સાથે ત્યાં જ ઉદાહરણો 192 00:15:42,010 --> 00:15:46,220 અને H ના કોઇ નંબર માત્ર શબ્દમાળા મીટર હતી. 193 00:15:46,490 --> 00:15:51,850 પછી હું તેને ફરીથી પ્રયત્ન કર્યો છે; હું જણાવ્યું હતું કે, "ઠીક છે, અમને અહીં વાસ્તવિક સૌથી મોટું જૂથ વિચાર કરીએ." 194 00:15:51,850 --> 00:15:59,670 અને પછી હું H હતી. * મીટર, માત્ર એચ અને મીટર વચ્ચે અક્ષરો કોઈપણ સંખ્યાની આપે છે કે જેથી. 195 00:16:00,280 --> 00:16:02,950 અને તમે હમણાં બહાર શરૂ થાય છે અને ઠીક છે, સાથે સાથે આ, OH ", કરશે વિચારવાનો જો 196 00:16:02,950 --> 00:16:11,560 મને હેમ વિચાર, "તે ખરેખર અબ્રાહમ લિંકન માં H બધું લઈ જાય છે 197 00:16:11,560 --> 00:16:13,690 હેમ ઓવરને માટે બધી રીતે છે. 198 00:16:14,040 --> 00:16:18,110 તે લોભી છે, તે એચ જુએ - આ બધા અન્ય લખાણ - એમ, 199 00:16:18,110 --> 00:16:21,280 અને તે તેમાં લઈ જાય છે શું છે 200 00:16:22,060 --> 00:16:27,480 આ ખાસ કરીને પ્રચંડ છે - આપણે પણ કરી શકો છો એક લક્ષણ છે 201 00:16:27,480 --> 00:16:30,670 તે અન્ય કાર્યો મદદથી લોભી ન હોઈ માટે સ્પષ્ટ કરો. 202 00:16:31,480 --> 00:16:34,490 પરંતુ આ અમે ખાસ કરીને ધ્યાનમાં રાખવા હોય કંઈક છે 203 00:16:34,490 --> 00:16:38,720 એચટીએમએલ પર જોઈ ત્યારે, જે એક કારણ એ છે કે 204 00:16:38,720 --> 00:16:41,500 નિયમિત સમીકરણો HTML માટે મુશ્કેલ હોય છે. 205 00:16:42,460 --> 00:16:46,310 કારણ કે તમે મધ્યમાં એક HTML ઓપન ટૅગ અને પછી સામગ્રી ઘણાં બધાં છે, તો 206 00:16:46,310 --> 00:16:49,820 અને પછી કેટલાક અન્ય HTML, પ્રોગ્રામમાં ઘણી પાછળથી ટૅગ બંધ 207 00:16:49,820 --> 00:16:55,420 તમે હમણાં કદાચ ભૂલથી તમારા HTML કોડ ઘણો અપ યોગ્ય જે પણ છે. 208 00:16:56,200 --> 00:17:01,840 >> બધા હક છે - તેથી વધુ વિશિષ્ટ અક્ષરો, ઘણા અન્ય ભાષાઓ જેવી, 209 00:17:01,840 --> 00:17:04,780 અમે સ્લેશ નો ઉપયોગ કરીને ભાગી. 210 00:17:04,780 --> 00:17:10,329 તેથી અમે એક નવી લાઇન સિવાય કોઇ અક્ષર સ્પષ્ટ કરવા માટે કોઈ ઉપયોગ કરી શકો છો. 211 00:17:10,329 --> 00:17:14,550 અમે કોઈપણ મૂળાક્ષર અક્ષર સ્પષ્ટ કરવા માટે ભાગી W નો ઉપયોગ કરી શકો છો. 212 00:17:14,550 --> 00:17:20,329 અને કોઇ પૂર્ણાંક માટે સામ્યતાનો ભાગી ડી દ્વારા - સંખ્યાત્મક પાત્ર. 213 00:17:20,630 --> 00:17:27,440 અમે સ્પષ્ટ કરી શકો છો - અમે સંબંધિત અભિવ્યક્તિઓ સ્પષ્ટ કરવા માટે કૌંસમાં ઉપયોગ કરી શકો છો. 214 00:17:27,440 --> 00:17:30,970 તેથી આ A, B, C અથવા સ્વીકારવા આવશે. 215 00:17:31,320 --> 00:17:37,000 અને અમે પણ ઉલ્લેખ કરો અથવા A અથવા B ક્યાં વિકલ્પો કરી શકો છો. 216 00:17:37,000 --> 00:17:41,110 ઉદાહરણ તરીકે - અમે બહુવિધ શક્યતાઓ માટે જોઈ હત ª 217 00:17:41,110 --> 00:17:44,940 કૌંસમાં અમે તરીકે અથવા ઓપરેટર ઉપયોગ કરી શકે છે - 218 00:17:44,940 --> 00:17:52,480 જેથી અમને અહીં આ ઉદાહરણ પર પાછા જવા દો. 219 00:17:53,000 --> 00:17:59,790 પછી અમને અહીં આ ઉદાહરણ પર પાછા જવા દો, અને - અને હવે અમને લેવા દો 220 00:17:59,790 --> 00:18:12,290 AE લેવા - તેથી આ પાછા જોઈએ - હું આ હજુ પણ અબ્રાહમ છે ધારી. 221 00:18:12,290 --> 00:18:17,410 આ જેથી - અમે બધા તો - મહાન. 222 00:18:17,410 --> 00:18:22,700 તેથી અમને અહીં લખાણ અપડેટ કરીએ. 223 00:18:22,700 --> 00:18:34,690 "તેમના hemming જ્યારે અબ્રાહમ હેમ ખાવાની વાનગીઓ -. Hemming જ્યારે" મહાન. 224 00:18:44,090 --> 00:18:47,330 બધા. મહાન. હવે અમે હેમ, હેમ, અને છેડો વિચાર. 225 00:18:48,510 --> 00:18:59,370 Hemming જ્યારે - તેમને રંગબેરંગી જ્યારે - છેડો તેમને રંગબેરંગી છે. મહાન. 226 00:19:00,350 --> 00:19:03,250 જ વસ્તુ. 227 00:19:03,820 --> 00:19:09,180 હવે તમામ હમ અથવા તેના પર અપ ચૂંટતા વગર પણ, ફક્ત હેમ હેમ, અને છેડો આપે છે. 228 00:19:09,940 --> 00:19:22,600 ગ્રેટ - અમે ક્યાં જોવા ઇચ્છતા હોય તો શું છે - તેથી અમે પણ કરી શકે 229 00:19:23,510 --> 00:19:33,810 તેને અથવા - અમે તે પાછા આવશે. 230 00:19:34,810 --> 00:19:45,760 ઠીક છે - તેથી - બધા અધિકાર - સ્થાનો તમે પણ કાકપદું અથવા ડોલર સાઇન ઉપયોગ કરી શકો છો 231 00:19:45,760 --> 00:19:49,350 તમે શરૂઆતમાં કંઈક અથવા શબ્દમાળા ઓવરને માટે જોઈ રહ્યા હોય કે જે સ્પષ્ટ કરવા માટે. 232 00:19:50,260 --> 00:19:52,260 અથવા શરૂઆતમાં અથવા એક શબ્દ ઓવરને. 233 00:19:52,400 --> 00:19:54,470 કે વાપરવા માટે એક રીત છે. 234 00:19:55,630 --> 00:20:01,160 >> ઠીક છે - તેથી અમને લખાણ એક સહેજ મોટી બ્લોક સાથે આસપાસ રમવા દો. 235 00:20:03,950 --> 00:20:08,310 અમને અહીં આ પંક્તિ કહે દો - આ નિવેદન અહીં. 236 00:20:08,310 --> 00:20:11,360 નિયમિત સમીકરણ શક્તિ તેઓ પેટર્ન સ્પષ્ટ કરી શકો છો કે જે છે 237 00:20:11,360 --> 00:20:13,390 માત્ર અક્ષરો નિશ્ચિત નથી. 238 00:20:14,900 --> 00:20:18,790 અમને બનાવવા દો - અમને આ બ્લોક કૉલ દો. 239 00:20:22,400 --> 00:20:27,110 પછી અમે તે સાઇન બધા વાંચી હશે 240 00:20:28,890 --> 00:20:50,820 અને પછી એક છે - અમને બધા = બનાવવા દો; આપણે નફા અહીં શોધવા શકે કેટલીક વસ્તુઓ જેથી શું છે? 241 00:20:50,820 --> 00:20:54,070 અમે અભિવ્યક્તિ કાન માટે જુઓ શકે છે. 242 00:20:55,050 --> 00:21:01,520 નથી ખૂબ જ રસપ્રદ. કેવી રીતે તે વિશે? અમે શું થાય છે તે જોવા મળશે. 243 00:21:03,710 --> 00:21:05,710 હું તે એક સમસ્યા આપ્યો. 244 00:21:06,380 --> 00:21:10,750 તેથી ફરી અને બધા પહેલાં કોઈપણ વસ્તુઓ સંખ્યા. 245 00:21:10,750 --> 00:21:15,630 જેથી શરૂઆતથી અપ કદાચ બધા ફરી એક દંપતિ વખત બધું પરત કરીશું. 246 00:21:18,800 --> 00:21:21,970 અને પછી અહીં અમે નિયમિત સમીકરણો શક્તિ છે છે કે તેઓ 247 00:21:21,970 --> 00:21:24,900 દાખલાની સ્પષ્ટ કરી શકો છો અહીં અક્ષરો માત્ર છે. 248 00:21:24,900 --> 00:21:28,510 તેથી અપ ફાઇનલમાં ફરીથી માટે બધી રીતે, તે ડાબી સાથે સૌથી શરૂ કર્યું અને લોભી હતો. 249 00:21:30,710 --> 00:21:32,710 અમને જોવા દો - અમે માટે બીજું શું જોવા શકે છે. 250 00:21:32,710 --> 00:21:39,860 તમે સર્વનામ માટે જોઈ રસ હોય તો હું એક વસ્તુ ધારી તે અને તે, 251 00:21:39,860 --> 00:21:44,600 તમે ઓ 0 અથવા 1 બરાબર હોવા માટે તપાસો શકે 252 00:21:44,600 --> 00:21:49,710 અને અભિવ્યક્તિ તેમણે, અને તે કદાચ પાછા જવા નથી - 253 00:21:49,710 --> 00:21:58,020 ઓહ, હું ત્યાં અમે અહીં, પાવર, કે જે દિવસે આવે છે શોધી રહ્યા છે, કારણ કે તે પરત ધારી. 254 00:22:00,590 --> 00:22:06,270 અમને આ કંઈક શરૂઆતમાં આવે છે કે સ્પષ્ટ પ્રયાસ કરીએ. 255 00:22:06,640 --> 00:22:09,530 કે બંધ ડ્રોપ્સ તો અમને જોવા દો. 256 00:22:09,530 --> 00:22:19,630 તેથી અમે ચરબી કરી શકો છો, અને ત્યાં અમે કંઈપણ વિચાર નથી કારણ કે તે અને તેઓ 257 00:22:19,630 --> 00:22:22,870 આ શબ્દસમૂહ નથી હોતી. 258 00:22:24,960 --> 00:22:30,410 મહાન. ઠીક છે - તેથી પાછા બિલાડી માટે અહીં. 259 00:22:30,410 --> 00:22:35,720 તેથી જટિલ પેટર્ન મગજ પર અસર કરે છે. 260 00:22:35,720 --> 00:22:40,500 અમે આ મુદ્દાઓ ટાળવા માટે નિયમિત સમીકરણો ઉપયોગ શા માટે છે કે જેથી છે. 261 00:22:40,820 --> 00:22:43,520 >> તેથી અહીં તમારી સાથે આસપાસ રમી શકે છે અમુક અન્ય ઉપયોગી સ્થિતિઓ છે. 262 00:22:43,520 --> 00:22:50,290 આજે આપણે શોધ પર જોવામાં, પરંતુ તમે પણ મેચ વિભાજીત, findall, અને જૂથો ઉપયોગ કરી શકો છો. 263 00:22:50,290 --> 00:22:53,970 તમે માત્ર ઉપરાંત નિયમિત સમીકરણો સાથે કરી શકો છો જેથી અન્ય ઠંડી વસ્તુઓ 264 00:22:53,970 --> 00:22:58,870 દાખલાની માટે જોઈ પેટર્ન લેવા અને તમામ મેચો હોલ્ડિંગ છે - 265 00:22:58,870 --> 00:23:02,530 તેના ચલો - અને પછી પાછળથી તમારો કોડ તે વાપરી રહ્યા હોય. 266 00:23:02,850 --> 00:23:05,980 તે તદ્દન મદદરૂપ થઇ શકો છો. અન્ય વસ્તુઓ ગણતરી હોઈ શકે છે. 267 00:23:05,980 --> 00:23:11,720 જેથી અમે નિયમિત સમીકરણ પેટર્ન ઘટકોને સંખ્યા ગણતરી કરી શકો છો 268 00:23:11,720 --> 00:23:13,960 અને તે અમે જૂથો ઉપયોગ કરી શકો છો શું છે. 269 00:23:13,960 --> 00:23:17,550 અને અન્ય સ્થિતિઓ તેમજ પણ શક્ય છે. 270 00:23:18,040 --> 00:23:22,980 તેથી હું માત્ર તમે નિયમિત સમીકરણો ઉપયોગ કરી શકો છો અન્ય માર્ગો વિશે થોડુંક વધુ વાત કરવા માંગો છો. 271 00:23:22,980 --> 00:23:29,100 >> તેથી એક વધુ અદ્યતન એપ્લિકેશન ઝાંખું મેચિંગ છે. 272 00:23:29,100 --> 00:23:33,450 તમે અભિવ્યક્તિ, જુલિયસ સીઝર, માટે લખાણ માટે જોઈ રહ્યા હોય, તેથી જો 273 00:23:33,450 --> 00:23:37,740 અને તમે અન્ય ભાષાઓમાં ગેયુસ જુલિયસ સીઝર અથવા નામ જુલિયસ સીઝર ક્યાં જોવા 274 00:23:37,740 --> 00:23:44,400 તો પછી તમે પણ તે કિંમતો માટે અમુક વજન સોંપી શકો છો. 275 00:23:44,400 --> 00:23:48,930 અને તે બંધ પૂરતી હોય - તે ચોક્કસ થ્રેશોલ્ડ પાર જો - તો પછી તમે કરવા માંગો છો 276 00:23:48,930 --> 00:23:50,860 જુલિયસ સીઝર સ્વીકારવા માટે સક્ષમ છે. 277 00:23:50,860 --> 00:24:00,580 તેથી તેમજ થોડા અન્ય ભાષાઓમાં તે માટે એક દંપતિ અલગ અમલીકરણો છે. 278 00:24:02,580 --> 00:24:08,420 એક હાથમાં થોડી એપ્લિકેશન માટે ઓનલાઈન - અહીં અમુક અન્ય સાધનો, Regex પાલ છે 279 00:24:08,420 --> 00:24:12,190 તમારા નિયમિત સમીકરણો યોગ્ય રીતે બનેલા છે, જો તપાસો. 280 00:24:12,190 --> 00:24:18,500 તમે તમારા ડેસ્કટૉપ પરથી ચલાવી શકો છો કે જે એકલ સાધનો પણ છે 281 00:24:18,500 --> 00:24:22,100 અલ્ટ્રા પીકો Name, તેમજ માત્ર cookbooks છે. 282 00:24:22,100 --> 00:24:25,410 તમે નિયમિત સમીકરણો એક ટન સમાવેશ થાય છે કે જે પ્રોજેક્ટ કરી રહ્યા છે તેથી જો 283 00:24:25,410 --> 00:24:29,810 આ કદાચ આજે તક બહાર જવા માટે સ્થળ છે. 284 00:24:31,520 --> 00:24:35,770 અને પછી માત્ર તમે તેને કેવી રીતે સામાન્ય અર્થમાં આપી 285 00:24:35,770 --> 00:24:44,090 grep યુનિક્સ ત્યાં છે, પર્લ આંતરિક છે, અને સી સી માટે PCRE છે 286 00:24:44,090 --> 00:24:48,890 અને પછી આ બધા અન્ય ભાષાઓ પણ નિયમિત સમીકરણ પેકેજો છે 287 00:24:48,890 --> 00:24:52,020 કે આજે આપણે એક સ્વાદ મળી આવશ્યક સમાન વાક્યરચના સાથે કામ કરે છે. 288 00:24:52,020 --> 00:24:54,790 PHP, જાવા, રૂબી, અને તેથી પર. 289 00:24:56,080 --> 00:24:58,980 >> Google કોડ શોધો ખરેખર ઉલ્લેખ વર્થ છે; તે એક છે 290 00:24:58,980 --> 00:25:05,720 જાહેર ઍક્સેસ કરવા માટે પરવાનગી આપે છે કે જે ત્યાં બહાર પ્રમાણમાં થોડા કાર્યક્રમો 291 00:25:05,720 --> 00:25:07,800 નિયમિત સમીકરણો મદદથી તેના ડેટાબેઝને. 292 00:25:07,800 --> 00:25:12,920 તમે Google કોડ શોધ પર જોવા તેથી જો તમે શોધી શકો છો કોડ 293 00:25:12,920 --> 00:25:16,880 તમે એક કાર્ય ઉપયોગ કરી શકે છે કેવી રીતે એક ઉદાહરણ માટે જોઈ રહ્યા હોય, તો 294 00:25:16,880 --> 00:25:21,610 તમે અલગ કિસ્સાઓમાં તમામ પ્રકારના ઉપયોગમાં લેવાઇ કે કાર્ય શોધવા માટે નિયમિત સમીકરણ વાપરી શકો છો. 295 00:25:21,610 --> 00:25:28,000 તમે fwrite માટે જુઓ શકે છે, અને પછી તમે જે લખ્યું ધ્વજ જુઓ અથવા વાંચી શકે છે 296 00:25:28,000 --> 00:25:32,000 તમે કે જે કિસ્સામાં ઉપયોગ કરવામાં fwrite ઉદાહરણ ઇચ્છતા હોય. 297 00:25:33,530 --> 00:25:37,010 અહીં તેથી જ ત્યાં વસ્તુ છે, અને કેટલાક સંદર્ભો છે. 298 00:25:37,010 --> 00:25:40,990 આ આવું આગળ જતાં, તેમજ ઓનલાઈન ઉપલબ્ધ હશે 299 00:25:40,990 --> 00:25:45,560 તમે Python, grep, Perl જોવા માંગો છો - તમે માત્ર અમુક પ્રેરણા મળી માંગો છો 300 00:25:45,560 --> 00:25:50,650 તમે અહીં સિદ્ધાંત પર વધુ જોવા માંગતા હોય અથવા જો સ્થળો બંધ કેટલાક સારા જમ્પિંગ છે. 301 00:25:50,650 --> 00:25:53,870 ખૂબ ખૂબ આભાર. 302 00:25:58,470 --> 00:25:59,910 [CS50.TV]