1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seminar: Pattern Tqabbil ma regolari espressjonijiet] 2 00:00:02,000 --> 00:00:04,000 [John Mussman-Università ta 'Harvard] 3 00:00:04,000 --> 00:00:07,220 [Dan huwa CS50.-CS50.TV] 4 00:00:07,780 --> 00:00:11,610 Okay. Ukoll, kulħadd merħba. Dan huwa CS50 2012. 5 00:00:11,780 --> 00:00:16,610 Jisimni John, u jien se jitkellem llum dwar espressjonijiet regolari. 6 00:00:16,610 --> 00:00:22,530 Espressjonijiet regolari huwa primarjament għodda, iżda ġieli jintużaw ukoll 7 00:00:22,530 --> 00:00:28,650 fil-kodiċi attiv biex essenzjalment jaqblu mudelli u kordi. 8 00:00:28,650 --> 00:00:33,800 Allura hawnhekk komiks web minn XKCD. 9 00:00:34,440 --> 00:00:42,370 F'dan komiks hemm misteru qtil fejn il-qattiel għandha 10 00:00:42,370 --> 00:00:47,860 segwiti xi ħadd fuq vaganza, u l-protagonisti jkollhom 11 00:00:47,860 --> 00:00:52,500 tfittex permezz 200 megabytes ta emails infittxu indirizz. 12 00:00:52,500 --> 00:00:56,090 U huma waslu biex jieqfu meta xi ħadd li jaf espressjonijiet regolari - 13 00:00:56,090 --> 00:01:00,550 preżumibbilment superhero - swoops isfel u jikteb xi kodiċi 14 00:01:00,550 --> 00:01:02,970 u jsolvi l-misteru qtil. 15 00:01:02,970 --> 00:01:07,370 Għalhekk probabbilment li se jkun xi ħaġa li inti se tkun inkarigata li tagħmel 16 00:01:07,370 --> 00:01:09,370 wara dan is-seminar. 17 00:01:09,370 --> 00:01:12,250 Aħna biss se jipprovdu introduzzjoni konċiż lill-lingwa 18 00:01:12,250 --> 00:01:16,770 u jagħtuk biżżejjed mezzi suffiċjenti biex imorru wara aktar riżorsi fuq tiegħek. 19 00:01:17,680 --> 00:01:21,700 >> Espressjonijiet tant regolari look bażikament bħal dan. 20 00:01:22,930 --> 00:01:25,550 Din hija espressjoni regolari Ruby. 21 00:01:25,550 --> 00:01:29,280 Mhuwiex terriblement differenti madwar lingwi. 22 00:01:29,690 --> 00:01:37,630 Għandna biss fuq slashes biex tibda u mmarka l-espressjoni regolari Ruby. 23 00:01:37,630 --> 00:01:42,880 U dan huwa espressjoni regolari biex tfittex fil-mudell indirizz email. 24 00:01:42,880 --> 00:01:49,160 Allura naraw fl-ewwel ftit jistenna għal xi karattri alfanumeriċi. 25 00:01:50,500 --> 00:01:54,880 Dan huwa minħabba indirizzi email spiss ikollhom jibdew b'ordni alfabetiku. 26 00:01:55,460 --> 00:01:59,330 U mbagħad xi karattru speċjali segwita bis-simbolu @. 27 00:01:59,330 --> 00:02:03,260 U allura l-istess ħaġa għall-isem tad-dominju. 28 00:02:03,260 --> 00:02:10,030 U mbagħad bejn 2 u 4 karattri li tfittex l-. Com,. Nett, u l-bqija. 29 00:02:10,850 --> 00:02:13,200 Allura dan huwa eżempju ieħor ta 'espressjoni regolari. 30 00:02:13,200 --> 00:02:17,270 Espressjonijiet tant regolari huma l-protokolli għall-konstatazzjoni patters fit-test. 31 00:02:17,270 --> 00:02:21,130 Huma jagħmlu paraguni, selezzjonijiet, u s-sostituzzjonijiet. 32 00:02:21,690 --> 00:02:27,970 Allura t-tielet eżempju huwa konstatazzjoni-numri tat-telefon li jispiċċa fil-54 f'direttorju. 33 00:02:27,970 --> 00:02:34,360 Allura qabel David RIPs up il-direttorju CS50 nistgħu tfittxija għal 34 00:02:34,360 --> 00:02:40,450 mudell fejn għandna parentesi mbagħad 3 numri mbagħad jispiċċaw parentesi, 35 00:02:40,450 --> 00:02:44,070 3 numri aktar, sing, 2 numri, u mbagħad 54. 36 00:02:44,070 --> 00:02:48,310 U li tkun essenzjalment kif aħna toħroġ bi espressjoni regolari tiftix għal dan. 37 00:02:49,150 --> 00:02:52,960 >> Allura hemm - għamilna xi affarijiet fil CS50 li huma ftit simili 38 00:02:52,960 --> 00:02:59,740 espressjonijiet regolari, sabiex - per eżempju - fil-fajl dictionary.C 39 00:02:59,740 --> 00:03:04,720 għall-jespliċitaw check problema sett jista 'jkollok użati fscanf 40 00:03:04,720 --> 00:03:07,930 biex jaqra fil-kelma mill-dizzjunarju. 41 00:03:07,930 --> 00:03:16,240 U tista 'tara l-perċentwali 45s qed tfittex għal string ta' 45 karattri. 42 00:03:16,240 --> 00:03:20,020 Għalhekk huwa kemmxejn simili espressjoni regolari rudimentali. 43 00:03:21,150 --> 00:03:26,060 U inti jista 'jkollhom xi 45 karattri li jaqblu l-abbozz fil hemm 44 00:03:26,060 --> 00:03:28,080 u pick up dawk. 45 00:03:28,080 --> 00:03:33,480 U mbagħad it-tieni eżempju fil-problema l-aktar riċenti ta 'programmazzjoni web 46 00:03:33,480 --> 00:03:40,760 stabbiliti fil-kodiċi distro għall PHP għandna attwalment ma jkollhom espressjoni regolari sempliċi. 47 00:03:40,760 --> 00:03:46,790 U dan huwa wieħed biss sempliċement tfittex li tivverifika jekk il-paġna web li tgħaddi minn 48 00:03:46,790 --> 00:03:51,940 logħbiet jew login jew logout jirreġistraw. PHP. 49 00:03:52,220 --> 00:03:57,910 U mbagħad jirritornaw vera jew falza bbażata fuq dik tqabbil espressjoni regolari. 50 00:03:59,400 --> 00:04:01,740 >> Allura meta tuza espressjoni regolari? 51 00:04:01,740 --> 00:04:04,820 Għaliex inti hawn illum? 52 00:04:05,330 --> 00:04:08,480 Allura inti ma tridx li jużaw espressjoni regolari meta jkun hemm xi ħaġa li 53 00:04:08,480 --> 00:04:11,640 ma l-impjieg għal inti anki aktar faċilment. 54 00:04:11,640 --> 00:04:15,510 Allura XML u HTML huma attwalment pretty delikata 55 00:04:15,510 --> 00:04:18,480 li tikteb espressjonijiet regolari għal kemm se naraw fil-ftit. 56 00:04:19,110 --> 00:04:23,280 Allura hemm parsers dedikati għall-dawk il-lingwi. 57 00:04:24,170 --> 00:04:30,060 Tridu wkoll tkun okay il kompromessi u eżattezza spiss. 58 00:04:30,060 --> 00:04:36,220 Jekk inti qed jippruvaw - hekk rajna espressjoni regolari għal indirizz email, 59 00:04:37,370 --> 00:04:42,590 imma jgħidu inti riedu indirizz email speċifiku u gradwalment l- 60 00:04:42,590 --> 00:04:48,570 espressjoni regolari tista 'ssir aktar kumplessa hekk kif sar aktar preċiż. 61 00:04:49,580 --> 00:04:52,260 Allura li tkun waħda kummerċ off. 62 00:04:52,260 --> 00:04:55,330 Int għandek tkun żgur li inti okay jagħmlu ma 'l-espressjoni regolari. 63 00:04:55,330 --> 00:04:57,920 Jekk inti taf eżattament dak li qed tfittex jista 'jagħmel aktar sens 64 00:04:57,920 --> 00:05:02,070 biex jitqiegħdu fil-ħin u jiktbu parser aktar effettiva. 65 00:05:02,070 --> 00:05:06,980 U finalment hemm kwistjoni storika mal-regolarità 66 00:05:06,980 --> 00:05:08,940 ta 'espressjonijiet u l-lingwi. 67 00:05:08,940 --> 00:05:12,960 Regolari espressjonijiet huma attwalment ferm aktar b'saħħitha minn 68 00:05:12,960 --> 00:05:16,450 espressjonijiet regolari għal kull jgħidu f'sens formali. 69 00:05:17,130 --> 00:05:20,150 >> So I ma jridu jmorru wisq fil-teorija formali, 70 00:05:20,150 --> 00:05:24,000 imma ħafna lingwi li għandna kodiċi fil-fatt mhumiex regolari. 71 00:05:24,000 --> 00:05:29,110 U dan huwa għaliex espressjonijiet regolari kultant m'humiex meqjusa kollu li sigur. 72 00:05:29,670 --> 00:05:33,150 Allura bażikament hemm ġerarkija Chomsky għal-lingwi, 73 00:05:33,150 --> 00:05:38,400 u espressjonijiet regolari jibnu jużaw union, konkatenazzjoni, 74 00:05:38,400 --> 00:05:41,810 u l-operazzjoni star Kleene li se naraw fi ftit minuti. 75 00:05:43,130 --> 00:05:48,860 Jekk inti interessat fit-teorija hemm pjuttost ħafna għaddej hemmhekk taħt il-barnuża. 76 00:05:50,360 --> 00:05:55,880 >> Allura storja qasira - biss għall-kuntest hawnhekk - settijiet regolari ħarāet 77 00:05:55,880 --> 00:05:59,580 fl-1950, u mbagħad kellna edituri sempliċi li 78 00:05:59,580 --> 00:06:03,300 inkorporati espressjonijiet regolari - biss tiftix ta 'sekwenzi. 79 00:06:03,570 --> 00:06:09,110 Grep - li hija għodda linja ta 'kmand - kien wieħed mill-ewwel 80 00:06:09,110 --> 00:06:14,160 għodod popolari ħafna li inkorporati espressjonijiet regolari fl-1960. 81 00:06:14,160 --> 00:06:20,560 Fis-snin 80, Perl inbniet - hija lingwa ta 'programmar li 82 00:06:20,560 --> 00:06:24,110 tinkorpora espressjonijiet regolari b'mod prominenti ħafna. 83 00:06:24,550 --> 00:06:30,130 U allura aktar reċentement kellna Perl regolari espressjoni kompatibbli 84 00:06:30,130 --> 00:06:35,870 protokolli bażikament f'lingwi oħra li jużaw ħafna mill-istess sintassi. 85 00:06:36,630 --> 00:06:39,840 Naturalment l-aktar avveniment importanti kien fl-2008 86 00:06:39,840 --> 00:06:43,040 fejn kien hemm l-ewwel Espressjonijiet regolari Jum Nazzjonali, 87 00:06:43,040 --> 00:06:47,350 li nemmen li huwa Ġunju 1 jekk inti tixtieq li jiċċelebraw dan. 88 00:06:48,430 --> 00:06:50,840 >> Għal darb'oħra, biss ftit aktar teorija hawn. 89 00:06:52,180 --> 00:06:55,320 Allura hemm modi koppja differenti tal-kostruzzjoni espressjonijiet regolari. 90 00:06:55,950 --> 00:07:02,050 Mod wieħed sempliċi huwa biex tinbena l-espressjoni li inti ser 91 00:07:02,050 --> 00:07:07,500 jimxu fuq il-sekwenza tinterpreta - bażikament jibnu mini-programm ftit li 92 00:07:07,500 --> 00:07:11,870 se tanalizza biċċiet ta string u ara, "Oh, ma dan tajbin l-espressjoni regolari jew le?" 93 00:07:12,250 --> 00:07:14,250 U mbagħad run dan. 94 00:07:14,250 --> 00:07:17,300 Mela jekk għandek espressjoni regolari żgħar ħafna, dan huwa probabbilment 95 00:07:17,300 --> 00:07:19,380 l-aktar mod effiċjenti biex tagħmel dan. 96 00:07:20,090 --> 00:07:25,420 U mbagħad jekk inti - għażla oħra huwa li żżomm l-rikostruzzjoni 97 00:07:25,420 --> 00:07:30,260 espressjoni kif tmur, u li hija l-possibbiltà jissimulaw. 98 00:07:30,440 --> 00:07:37,690 U dawn l-attentati kmieni fil algoritmi regolari espressjoni kienu 99 00:07:37,690 --> 00:07:44,330 relattivament sempliċi u relattivament rapida, iżda ma għandhom ħafna ta 'flessibilità. 100 00:07:44,330 --> 00:07:47,500 Allura biex nagħmlu anke xi wħud mill-affarijiet li aħna ser tħares lejn 101 00:07:47,500 --> 00:07:52,860 llum kellna biex jagħmlu espressjoni regolari aktar kumplessi 102 00:07:52,860 --> 00:07:56,650 implimentazzjonijiet li huma potenzjalment ħafna aktar kajman; hekk li hija xi ħaġa li wieħed iżomm f'moħħu 103 00:07:57,510 --> 00:08:02,920 Hemm ukoll espressjonijiet ċaħda regolari ta 'varjetà attakk 104 00:08:02,920 --> 00:08:08,330 li jisfruttaw il-potenzjal għal dawn implimentazzjonijiet ġodda ta ' 105 00:08:08,330 --> 00:08:10,930 espressjonijiet regolari biex issir kumplessa ħafna. 106 00:08:11,570 --> 00:08:15,650 U ħafna fl-istess sens li rajna fl-attakki overflow buffer, 107 00:08:15,650 --> 00:08:21,610 għandek attakki li x-xogħol billi tagħmel linji rikursivi li 108 00:08:21,610 --> 00:08:24,400 qbiż tal-kapaċità ta 'memorja. 109 00:08:24,780 --> 00:08:29,540 U mill-mod Regexen huwa wieħed mill-plurals uffiċjali ta 'espressjoni regolari 110 00:08:29,540 --> 00:08:32,890 b'analoġija għall oxen fil-Anglo-Sassoni. 111 00:08:33,500 --> 00:08:40,169 >> Okay, sabiex il-Librerija Python ħafna minnkom hawn fl-persuna jkollha MACs, 112 00:08:40,169 --> 00:08:43,860 sabiex inti tista 'attwalment pull dan up fuq l-iskrin tiegħek. 113 00:08:43,860 --> 00:08:47,480 Regolari espressjonijiet huma mibnija fil Python. 114 00:08:48,070 --> 00:08:53,020 U għalhekk Python huwa mqabbad fuq MACs u wkoll disponibbli online fuq din ir-rabta. 115 00:08:53,770 --> 00:08:57,350 Mela jekk inti qed jaraw inti tista nieqaf u kun żgur li għandek Python 116 00:08:58,080 --> 00:09:00,170 kif aħna play madwar hawn. 117 00:09:00,780 --> 00:09:06,420 Hemm online manwali, hekk jekk inti biss tip Python fis-kompjuter tiegħek 118 00:09:06,420 --> 00:09:10,500 se tara li l-verżjoni tkun fil-terminal. 119 00:09:11,070 --> 00:09:17,720 So I sakemm link għall-manwal għall-Verżjoni 2 ta Python kif ukoll iqarrqu folja. 120 00:09:17,720 --> 00:09:23,100 Hemm Verżjoni 3 ta Python, iżda Mac tiegħek mhux bilfors 121 00:09:23,100 --> 00:09:25,130 come ma 'dak mqabbad. 122 00:09:25,130 --> 00:09:27,360 Allura mhux terriblement differenti. 123 00:09:27,360 --> 00:09:33,270 Okay, hekk ċerti punti ta 'użu regolari espressjonijiet fil Python. 124 00:09:34,080 --> 00:09:42,650 >> So here I użati espressjoni sempliċi ħafna, so I ma ri-importazzjoni Python 125 00:09:43,750 --> 00:09:47,070 u mbagħad ħa r-riżultat ta re.search. 126 00:09:47,070 --> 00:09:49,910 U t-tiftix tieħu 2 argumenti. 127 00:09:49,910 --> 00:09:56,040 L-ewwel hija l-espressjoni regolari, u t-tieni huwa t-test 128 00:09:56,040 --> 00:09:58,290 jew string inti tixtieq li tanalizza. 129 00:09:58,290 --> 00:10:01,210 U mbagħad I stampata l-result.group. 130 00:10:01,580 --> 00:10:05,860 Allura dawn huma l-funzjonijiet bażiċi 2 nkunu qed tara llum 131 00:10:06,790 --> 00:10:10,170 fit-tagħlim dwar espressjonijiet regolari. 132 00:10:10,170 --> 00:10:12,880 Hekk biss jitkissru din l-espressjoni regolari hawn 133 00:10:12,880 --> 00:10:21,770 siegħa u mbagħad \ w u mbagħad m hekk \ w biss taċċetta kwalunkwe karattru alfabetiku fil hemmhekk. 134 00:10:21,850 --> 00:10:26,820 Allura hawnhekk aħna qegħdin ifittxu għal "h" u mbagħad ieħor karattru alfabetiku 135 00:10:26,820 --> 00:10:30,060 u mbagħad m, hekk hawn li jkunu jaqblu ham 136 00:10:30,060 --> 00:10:34,480 fil, "Abraham Lincoln u perżut sandwiches." 137 00:10:35,040 --> 00:10:37,150 Dan huwa r-riżultat ta 'dak il-grupp. 138 00:10:37,680 --> 00:10:43,130 Ħaġa oħra li nistgħu nagħmlu huwa li tuża spag qabel tagħna ta 'test Python. 139 00:10:43,130 --> 00:10:46,220 So I raden I se jimxi 'l quddiem u iġbed li sa hawn. 140 00:10:46,220 --> 00:10:49,210 Ri-importazzjoni Python. 141 00:10:50,070 --> 00:10:54,000 U jekk jien kienu jagħmlu l-istess ħaġa - ejjew ngħidu test hi, 142 00:10:55,390 --> 00:11:00,800 "Abraham," let us zoom - hemm immorru. 143 00:11:01,610 --> 00:11:06,430 Test hija, "Abraham jiekol perżut." 144 00:11:07,460 --> 00:11:15,260 Okay, u mbagħad jirriżulta = re.search. 145 00:11:16,260 --> 00:11:22,020 U allura l-espressjoni tagħna tista 'tiġi h, u mbagħad I se tagħmel dot m. 146 00:11:22,020 --> 00:11:26,280 Allura dot biss tieħu xi karattru li mhix linja ġdida inklużi n-numri, 147 00:11:26,280 --> 00:11:28,650 sinjali perċentwali, xi ħaġa bħal dik. 148 00:11:28,650 --> 00:11:38,030 U mbagħad test - boom - u mbagħad result.group-'yeah. 149 00:11:38,030 --> 00:11:41,820 Allura li huwa biss kif jimplimentaw funzjonalità bażiċi hawn. 150 00:11:42,300 --> 00:11:55,110 Jekk kellna ring test li - dak it-test crazy - inklużi jgħidu lottijiet ta 'slashes lura 151 00:11:55,110 --> 00:12:01,180 u kordi ġewwa u affarijiet li jistgħu jixbhu sekwenzi ħarba, 152 00:12:01,180 --> 00:12:08,480 allura aħna probabbilment jridu jużaw l-input test prima biex tiżgura li hija aċċettata. 153 00:12:08,480 --> 00:12:14,120 U li biss jistenna bħal dik. 154 00:12:14,120 --> 00:12:17,810 Allura jekk aħna kienu qed ifittxu għal kull wieħed minnhom fil hemm aħna ma nistgħux jsibu xejn. 155 00:12:19,070 --> 00:12:21,680 Iżda dan huwa kif inti jimplimentawha; eżatt qabel l-sekwenza ta ' 156 00:12:21,680 --> 00:12:24,990 l-espressjoni regolari inti tpoġġi l-ittra r. 157 00:12:26,150 --> 00:12:30,260 >> Okay, so let us jibqgħu għaddejjin. 158 00:12:30,260 --> 00:12:33,730 Kull dritt - so let us tħares lejn mudelli ripetittivi koppja hawn. 159 00:12:34,750 --> 00:12:39,150 Allura ħaġa waħda li inti trid tagħmel hu li jirrepetu affarijiet 160 00:12:40,040 --> 00:12:42,480 kif inti qed tiftix permezz test. 161 00:12:42,480 --> 00:12:48,300 Allura biex jagħmlu segwit minn kull numru ta 'b - inti tagħmel ab *. 162 00:12:48,630 --> 00:12:51,620 U allura hemm sensiela ta 'regoli oħra wisq. 163 00:12:51,620 --> 00:12:54,380 U inti tista 'tfittex kollha ta' dawn up; I ser biss run permezz xi wħud mill- 164 00:12:54,380 --> 00:12:57,630 aktar komunement użati dawk. 165 00:12:57,630 --> 00:13:03,920 Allura ab + huwa segwit minn kwalunkwe N akbar minn 0 tal b. 166 00:13:04,510 --> 00:13:08,000 ab? huwa segwit minn 0 jew 1 tad b. 167 00:13:09,190 --> 00:13:18,580 ab {} N hija segwita minn N ta 'b, u mbagħad l-bqija. 168 00:13:18,580 --> 00:13:22,820 Jekk għandek 2 numri fil-braces kaboċċi inti tispeċifika firxa 169 00:13:23,300 --> 00:13:25,440 li jista 'jkun possibilment mqabbla. 170 00:13:26,390 --> 00:13:30,420 Allura aħna se tħares aktar lejn mudelli ripetittivi koppja fil-minuta. 171 00:13:31,960 --> 00:13:42,300 Allura 2 affarijiet li wieħed iżomm f'moħħu meta jużaw dawn mudell tqabbil għodod hawn. 172 00:13:42,300 --> 00:13:52,120 Allura ngħid li rridu nħarsu lejn l hm ta ', "Abraham Lincoln jagħmel sandwiches perżut." 173 00:13:52,120 --> 00:13:55,230 So I biddlet isimha Abraham Lincoln li Abraham. 174 00:13:55,230 --> 00:14:00,290 U issa qegħdin infittxu dak li huwa rritornat minn dan funzjoni ta 'tfittxija, 175 00:14:00,290 --> 00:14:03,270 u biss jirritorna perżut f'dan il-każ. 176 00:14:03,620 --> 00:14:08,080 U ma li minħabba search biss naturalment jieħu l-kju xellug aktar. 177 00:14:08,080 --> 00:14:12,130 U l-espressjonijiet regolari sakemm inti tispeċifika inkella se tagħmel dan. 178 00:14:12,830 --> 00:14:18,880 Jekk ridna li ssib kollox hemm funzjoni għal dan - jsibu kollha. 179 00:14:18,880 --> 00:14:35,100 Allura li tista 'tfittex biss bħal kull = re.findall ("h.m", it-test) 180 00:14:35,100 --> 00:14:44,540 u mbagħad all.group (). 181 00:14:44,540 --> 00:14:51,040 Kollha jipproduċi kemm perżut u perżut; f'dan il-każ iż-żewġ irbit Abraham kull perżut. 182 00:14:51,610 --> 00:14:55,110 Allura li hija għażla oħra. 183 00:14:56,250 --> 00:15:06,940 >> Great. Il-ħaġa oħra li wieħed iżomm f'moħħu huwa li espressjonijiet regolari tieħu l-akbar intuwittivament. 184 00:15:06,940 --> 00:15:09,520 Ejja nħarsu lejn dan l-eżempju. 185 00:15:10,200 --> 00:15:16,070 Aħna ma li tfittxija xellug aktar hawn, u mbagħad I attentat tfittxija akbar 186 00:15:16,070 --> 00:15:18,800 jużaw l-operatur star Kleene. 187 00:15:18,800 --> 00:15:24,180 Allura għal, "Abraham Lincoln jagħmel sandwiches perżut," u I biss marret lura 188 00:15:24,180 --> 00:15:26,280 m bħala riżultat. 189 00:15:26,280 --> 00:15:31,670 Ir-raġuni għal dan żball kienet li I setgħet tittieħed kwalunkwe numru ta ' 190 00:15:31,670 --> 00:15:36,140 h għaliex I ma jispeċifikaw xi ħaġa li jmorru fl bejn siegħa u m. 191 00:15:36,140 --> 00:15:42,010 L-uniku eżempju hemmhekk li kellhom m - l-uniċi eżempji hemm ma 'm fiha 192 00:15:42,010 --> 00:15:46,220 u kull numru ta 'l-h kienu biss il-m sekwenza. 193 00:15:46,490 --> 00:15:51,850 Imbagħad I ppruvaw darb'oħra; I said, "Okay, let us nikseb il-grupp attwali akbar hawnhekk." 194 00:15:51,850 --> 00:15:59,670 U mbagħad I ma h. * M, hekk li jirritorna kwalunkwe numru ta 'karattri bejn siegħa u m. 195 00:16:00,280 --> 00:16:02,950 U jekk inti kemm bdew u l-ħsieb, "Oh, okay, ukoll dan se 196 00:16:02,950 --> 00:16:11,560 nikseb me perżut, "huwa effettivament jieħu kollox mid-h fil Abraham Lincoln 197 00:16:11,560 --> 00:16:13,690 it-triq kollha sa l-aħħar ta 'perżut. 198 00:16:14,040 --> 00:16:18,110 Huwa greedy; jara h - dan kollu test ieħor - m, 199 00:16:18,110 --> 00:16:21,280 u dan huwa dak li jieħu pulzieri 200 00:16:22,060 --> 00:16:27,480 Dan huwa partikolarment egrarji - dan huwa karatteristika nistgħu wkoll 201 00:16:27,480 --> 00:16:30,670 jispeċifikaw għal ma jkun greedy jużaw funzjonijiet oħra. 202 00:16:31,480 --> 00:16:34,490 Iżda din hija xi ħaġa li għandna li wieħed iżomm f'moħħu speċjalment 203 00:16:34,490 --> 00:16:38,720 meta wieħed iħares lejn it-test HTML, li hi raġuni waħda li 204 00:16:38,720 --> 00:16:41,500 espressjonijiet regolari huma diffiċli għall HTML. 205 00:16:42,460 --> 00:16:46,310 Għaliex jekk għandek tag miftuħa HTML u mbagħad lottijiet ta 'għalf fin-nofs 206 00:16:46,310 --> 00:16:49,820 u mbagħad ftit HTML oħra magħluqa tag ħafna aktar tard fil-programm, 207 00:16:49,820 --> 00:16:55,420 int għadek jittiekel ta 'lott ta HTML code tiegħek possibilment bi żball. 208 00:16:56,200 --> 00:17:01,840 >> Kull dritt - il-karattri tant aktar speċjali, bħal ħafna lingwi oħra, 209 00:17:01,840 --> 00:17:04,780 aħna jaħarbu jużaw il-mmejla. 210 00:17:04,780 --> 00:17:10,329 Allura nistgħu nużaw il-dot li jispeċifika kull karattru ħlief għal xi linja ġdida. 211 00:17:10,329 --> 00:17:14,550 Nistgħu nużaw il-w iskapp għall jispeċifika kull karattru alfabetiku. 212 00:17:14,550 --> 00:17:20,329 U b'analoġija jaħarbu d għal kull numru sħiħ - karattru numeriku. 213 00:17:20,630 --> 00:17:27,440 Nistgħu jispeċifikaw - nistgħu nużaw parentesi li tispeċifika espressjonijiet relatati. 214 00:17:27,440 --> 00:17:30,970 Allura dan se taċċetta a, b, jew c. 215 00:17:31,320 --> 00:17:37,000 U nistgħu wkoll tispeċifika jew għażliet għal jew jew b. 216 00:17:37,000 --> 00:17:41,110 Per eżempju - jekk irridu kienu qed ifittxu possibiltajiet multipli 217 00:17:41,110 --> 00:17:44,940 fil-parentesi nistgħu jużaw l-operatur jew bħala - 218 00:17:44,940 --> 00:17:52,480 so let us go lura għall dan l-eżempju hawn. 219 00:17:53,000 --> 00:17:59,790 U issa ejjew jieħdu - jgħidilna mur lura għall dan l-eżempju hawn, u mbagħad 220 00:17:59,790 --> 00:18:12,290 jieħdu ae - għalhekk dan għandu jirritorna - I raden dan għadu Abraham. 221 00:18:12,290 --> 00:18:17,410 Allura dan - jekk nagħmlu kollox - kbir. 222 00:18:17,410 --> 00:18:22,700 Għalhekk ejjew taġġorna t-test hawn. 223 00:18:22,700 --> 00:18:34,690 "Abraham jiekol ham filwaqt hemming tiegħu -. Filwaqt hemming" Great. 224 00:18:44,090 --> 00:18:47,330 Kollha. Great. Issa irridu jiksbu perżut, perżut, u keffa. 225 00:18:48,510 --> 00:18:59,370 Filwaqt hemming - filwaqt humming lilu - filwaqt humming li hem lilu. Great. 226 00:19:00,350 --> 00:19:03,250 Istess ħaġa. 227 00:19:03,820 --> 00:19:09,180 Issa kollha prospetti għadhom biss perżut, perżut, u keffa mingħajr picking up fuq il-HUM jew il lilu. 228 00:19:09,940 --> 00:19:22,600 Kbira - sabiex dak li jekk ridna li tħares lejn jew li - hekk nistgħu wkoll tagħmel 229 00:19:23,510 --> 00:19:33,810 lilu jew - aħna se terga 'lura għal dan. 230 00:19:34,810 --> 00:19:45,760 Okay - hekk - id-dritt - fil-pożizzjonijiet tista 'wkoll tuża l-caret jew is-sinjal dollaru 231 00:19:45,760 --> 00:19:49,350 jiġi speċifikat li inti qiegħed tfittex xi ħaġa fil-bidu jew fl-aħħar ta 'sekwenza. 232 00:19:50,260 --> 00:19:52,260 Jew il-bidu jew it-tmiem ta 'kelma. 233 00:19:52,400 --> 00:19:54,470 Dan huwa mod wieħed biex tuża dan. 234 00:19:55,630 --> 00:20:01,160 >> Okay - so let us play madwar bi blokka kemmxejn akbar ta 'test. 235 00:20:03,950 --> 00:20:08,310 Ejjew ngħidu din il-filliera hawn - din id-dikjarazzjoni hawn. 236 00:20:08,310 --> 00:20:11,360 Il-qawwa ta 'espressjoni regolari huwa li jkunu jistgħu jispeċifikaw mudelli 237 00:20:11,360 --> 00:20:13,390 mhux biss karattri ffissati. 238 00:20:14,900 --> 00:20:18,790 Ejjew - jgħidilna sejħa dan blokka. 239 00:20:22,400 --> 00:20:27,110 Imbagħad aħna ser jinqara kollha ta 'dak pulzieri 240 00:20:28,890 --> 00:20:50,820 U mbagħad ikollhom a - jgħidilna tagħmel kollha =; iva, liema huma xi affarijiet nistgħu tfittxija fil hawn bi profitt? 241 00:20:50,820 --> 00:20:54,070 Aħna tista 'tfittex għall-widna espressjoni. 242 00:20:55,050 --> 00:21:01,520 Mhux ħafna interessanti. Kif dwar dan? Ser naraw x'jiġri. 243 00:21:03,710 --> 00:21:05,710 I tatha problema. 244 00:21:06,380 --> 00:21:10,750 Allura kull numru ta 'affarijiet qabel ma jerġa u kollha. 245 00:21:10,750 --> 00:21:15,630 Allura li għandhom jirritornaw kollox mill-bidu sa kull ri forsi koppja darbiet. 246 00:21:18,800 --> 00:21:21,970 U allura hawnhekk għandna l-poter ta 'espressjonijiet regolari huwa li dawn 247 00:21:21,970 --> 00:21:24,900 tista 'tispeċifika mudelli mhux biss karattri hawn huma. 248 00:21:24,900 --> 00:21:28,510 Allura l-triq kollha sa l-aħħar mill-ġdid, dan beda bl-aktar xellug u kien greedy. 249 00:21:30,710 --> 00:21:32,710 Ejjew tara - x'iktar jista aħna tfittex. 250 00:21:32,710 --> 00:21:39,860 I raden ħaġa waħda jekk inti kienu interessati fil tfittex l-pronomi hi u hu, 251 00:21:39,860 --> 00:21:44,600 inti tista 'tivverifika għall-i ndaqs 0 jew 1 252 00:21:44,600 --> 00:21:49,710 u l-espressjoni hu, u li hija probabbilment mhux se jirritorna - 253 00:21:49,710 --> 00:21:58,020 oh, I raden huwa lura huwa għaliex hemm aħna qed iħarsu lejn il-poter, dik il-ġurnata, hawn huma. 254 00:22:00,590 --> 00:22:06,270 Let us jippruvaw jispeċifikaw li din għandu jasal fil-bidu ta 'xi ħaġa. 255 00:22:06,640 --> 00:22:09,530 Ejjew ara jekk li l-qtar off. 256 00:22:09,530 --> 00:22:19,630 Allura nistgħu nagħmlu xaħam, u hemm aħna ma jsibux xejn għaliex hi u hu 257 00:22:19,630 --> 00:22:22,870 ma jseħħux fl din il-frażi. 258 00:22:24,960 --> 00:22:30,410 Great. Okay - hekk lura lill-qattus hawn. 259 00:22:30,410 --> 00:22:35,720 Mudelli tant kumplessi huwa dannu-moħħ. 260 00:22:35,720 --> 00:22:40,500 Allura huwa għalhekk li nużaw espressjonijiet regolari biex jiġu evitati dawn il-kwistjonijiet. 261 00:22:40,820 --> 00:22:43,520 >> Allura hawn huma xi modi utli oħra li inti tista 'tilgħab madwar mal. 262 00:22:43,520 --> 00:22:50,290 Ħarisna lejn search illum, imma int tista 'wkoll tuża logħba, maqsuma, findall, u gruppi. 263 00:22:50,290 --> 00:22:53,970 Affarijiet oħra hekk jibred inti tista 'tagħmel ma regolari espressjonijiet minbarra biss 264 00:22:53,970 --> 00:22:58,870 tfittex għal xejriet qed jieħu xejra u ż-żamma l-logħbiet - 265 00:22:58,870 --> 00:23:02,530 varjabbli tagħha - u mbagħad jużaw dawk fil-kodiċi tiegħek aktar tard. 266 00:23:02,850 --> 00:23:05,980 Li jista 'jkun pjuttost utli. Affarijiet oħra jistgħu jiġu għadd. 267 00:23:05,980 --> 00:23:11,720 Allura nistgħu jgħodd in-numru ta 'każijiet ta' mudell espressjoni regolari, 268 00:23:11,720 --> 00:23:13,960 u dan huwa dak li aħna jistgħu jużaw gruppi għall. 269 00:23:13,960 --> 00:23:17,550 U modi oħra kif ukoll huma wkoll possibbli. 270 00:23:18,040 --> 00:23:22,980 So I biss trid titkellem ftit aktar dwar modi oħra tista 'tuża espressjonijiet regolari. 271 00:23:22,980 --> 00:23:29,100 >> Allura wieħed applikazzjoni aktar avvanzata huwa tqabbil fuzzy. 272 00:23:29,100 --> 00:23:33,450 Mela jekk inti qiegħed tfittex għal test għall-espressjoni, Julius Caesar, 273 00:23:33,450 --> 00:23:37,740 u tara jew Gaius Julius Caesar jew l-isem Julius Caesar f'lingwi oħra, 274 00:23:37,740 --> 00:23:44,400 allura inti tista 'ukoll tixtieq li tassenja xi piż li dawk il-valuri. 275 00:23:44,400 --> 00:23:48,930 U jekk huwa qrib biżżejjed - jekk jaqsam ċertu limitu - imbagħad inti tixtieq 276 00:23:48,930 --> 00:23:50,860 biex ikunu jistgħu jaċċettaw Julius Caesar. 277 00:23:50,860 --> 00:24:00,580 Allura hemm koppja implimentazzjonijiet differenti għal dak fil ftit lingwi oħra ukoll. 278 00:24:02,580 --> 00:24:08,420 Hawn huma xi għodda oħra, regex Pal - app ftit handy online biex 279 00:24:08,420 --> 00:24:12,190 jiċċekkjaw jekk espressjonijiet regolari tiegħek huma komposti korrett. 280 00:24:12,190 --> 00:24:18,500 Hemm ukoll għodod standalone li inti tista 'taħdem mill-desktop tiegħek 281 00:24:18,500 --> 00:24:22,100 bħal Pico Ultra, u kif ukoll cookbooks biss. 282 00:24:22,100 --> 00:24:25,410 Mela jekk inti qiegħed tagħmel proġett li jinvolvi ton ta 'espressjonijiet regolari 283 00:24:25,410 --> 00:24:29,810 dan huwa probabbilment l-post biex imorru barra mill-ambitu tal-lum. 284 00:24:31,520 --> 00:24:35,770 U mbagħad biss biex jagħtuk sens ta 'kif komuni huwa 285 00:24:35,770 --> 00:24:44,090 hemm grep fil Unix, Perl għandha mibnija fil-, u C hemm PCRE għall C. 286 00:24:44,090 --> 00:24:48,890 U allura dawn il-lingwi l-oħra kollha jkollhom ukoll pakketti espressjoni regolari 287 00:24:48,890 --> 00:24:52,020 li joperaw essenzjalment l-istess sintassi sirna togħma ta 'llum. 288 00:24:52,020 --> 00:24:54,790 PHP, Java, Ruby, u l-bqija. 289 00:24:56,080 --> 00:24:58,980 >> Google Search Kodiċi huwa attwalment isemmi; huwa wieħed mill- 290 00:24:58,980 --> 00:25:05,720 relattivament ftit applikazzjonijiet hemmhekk li tippermetti lill-pubbliku għall-aċċess 291 00:25:05,720 --> 00:25:07,800 database tagħha jużaw espressjonijiet regolari. 292 00:25:07,800 --> 00:25:12,920 Mela jekk inti tfittex fuq Google Kodiċi Search inti tista 'ssib kodiċi 293 00:25:12,920 --> 00:25:16,880 jekk inti qiegħed tfittex għal eżempju ta 'kif jistgħu jintużaw funzjoni, 294 00:25:16,880 --> 00:25:21,610 inti tista 'tuża l-espressjoni regolari li ssib dik il-funzjoni qed jintużaw f'kull tip ta' każijiet differenti. 295 00:25:21,610 --> 00:25:28,000 Inti tista 'tfittex għal fwrite, u allura inti tista' tfittex l-bandiera ta 'write jew jaqraw 296 00:25:28,000 --> 00:25:32,000 jekk int riedu eżempju ta fwrite jintużaw b'dan il-każ. 297 00:25:33,530 --> 00:25:37,010 Allura l-istess ħaġa hemmhekk, u hawn huma xi referenzi. 298 00:25:37,010 --> 00:25:40,990 Dan se jkun disponibbli online kif ukoll, sabiex tmur quddiem jekk 299 00:25:40,990 --> 00:25:45,560 inti tixtieq li tħares lejn Python, grep, Perl - inti biss tixtieq li tikseb xi ispirazzjoni 300 00:25:45,560 --> 00:25:50,650 jew jekk inti tixtieq li tħares aktar fil-teorija hawn huma xi wħud jumping off tajba postijiet. 301 00:25:50,650 --> 00:25:53,870 Grazzi ħafna. 302 00:25:58,470 --> 00:25:59,910 [CS50.TV]