1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Mintegia: Eredua Regular Expressions batera lotu] 2 00:00:02,000 --> 00:00:04,000 [John Mussman-Harvard Unibertsitateko] 3 00:00:04,000 --> 00:00:07,220 [Hau da CS50.-CS50.TV] 4 00:00:07,780 --> 00:00:11,610 Ongi da. Beno, ongi guztiontzat. CS50 hau da, 2012. 5 00:00:11,780 --> 00:00:16,610 Nire izena John da, eta hitz egingo dut, gaur izango da adierazpen erregular buruz. 6 00:00:16,610 --> 00:00:22,530 Adierazpen erregularrak nagusiki tresna bat da, baina baita ere, batzuetan erabiltzen 7 00:00:22,530 --> 00:00:28,650 kodean aktiboki funtsean dator ereduak eta kateak. 8 00:00:28,650 --> 00:00:33,800 Beraz, hemen xkcd from web komiki bat da. 9 00:00:34,440 --> 00:00:42,370 Komiki horretan hilketa baten misterioa non hiltzailea da 10 00:00:42,370 --> 00:00:47,860 jarraitu oporretara norbait, eta protagonista izatea 11 00:00:47,860 --> 00:00:52,500 200 postak helbide baten bila megabyte bilatzeko. 12 00:00:52,500 --> 00:00:56,090 Eta eman norbaitek nork daki buruzko adierazpen erregularrak dira - 13 00:00:56,090 --> 00:01:00,550 zentzuzkoa superheroia - swoops behera eta kode batzuk idazten 14 00:01:00,550 --> 00:01:02,970 eta hilketa misterioa konpontzen. 15 00:01:02,970 --> 00:01:07,370 Beraz, zentzuzkoa zerbait duzula ahalmena izango du egin behar izango da, 16 00:01:07,370 --> 00:01:09,370 Mintegi honen ondoren. 17 00:01:09,370 --> 00:01:12,250 Hasi baino ez gara, sarrera labur bat emateko, hizkuntza joan 18 00:01:12,250 --> 00:01:16,770 eman eta baliabideak ematen dizkio nahikoa duzu zure kabuz baliabide gehiago joan ondoren. 19 00:01:17,680 --> 00:01:21,700 >> Beraz, adierazpen erregularrak begiratu funtsean hau atsegin du. 20 00:01:22,930 --> 00:01:25,550 Hau Ruby adierazpen erregular bat da. 21 00:01:25,550 --> 00:01:29,280 Ez da oso hizkuntza ezberdinetan zehar. 22 00:01:29,690 --> 00:01:37,630 Aski barrak dugu eta hasteko markatzeko Ruby adierazpen erregularra. 23 00:01:37,630 --> 00:01:42,880 Eta hau, adierazpen erregular bat da helbide elektroniko eredua bilatzeko da. 24 00:01:42,880 --> 00:01:49,160 Beraz, lehenengo bit edozein alfanumeriko pertsonaia bilatzen ikusiko dugu. 25 00:01:50,500 --> 00:01:54,880 Hau da helbide elektronikoak askotan delako alfabetikoa karakterearekin hasi. 26 00:01:55,460 --> 00:01:59,330 Eta, ondoren, izaera berezia edozein @ ikurra eta ondoren. 27 00:01:59,330 --> 00:02:03,260 Eta, ondoren, domeinuaren izena gauza bera. 28 00:02:03,260 --> 00:02:10,030 Eta, ondoren, 2 eta 4 karaktereak. Com bila,. Net, eta abar. 29 00:02:10,850 --> 00:02:13,200 Beraz, adierazpen erregular beste adibide bat da. 30 00:02:13,200 --> 00:02:17,270 Beraz, adierazpen erregularrak patters aurkitzeko testu protokoloak dira. 31 00:02:17,270 --> 00:02:21,130 Konparazioak, aukeraketa, ordezkatuko dute. 32 00:02:21,690 --> 00:02:27,970 Hirugarren adibide bat da, beraz, 54 karpeta batean bukatzen telefono zenbakiak guztiak aurkitzeko. 33 00:02:27,970 --> 00:02:34,360 Beraz, David CS50 direktorioa sortu rips aurretik bilatu Ezin izan dugu 34 00:02:34,360 --> 00:02:40,450 eredu bat non parentesi dugu, ondoren, 3 zenbakiak parentesi ondoren, amaitzeko, 35 00:02:40,450 --> 00:02:44,070 3 zenbakiak, marratxo bat, 2 zenbakiak, eta, ondoren, 54. 36 00:02:44,070 --> 00:02:48,310 Eta hori izango litzateke, funtsean, nola sortu gara, adierazpen erregular bat behar dela bilatzeko. 37 00:02:49,150 --> 00:02:52,960 >> Beraz, ez dira - egin dugu gauza batzuk CS50 direla pixka bat bezala 38 00:02:52,960 --> 00:02:59,740 adierazpen erregularrak eta, beraz, - adibidez - en dictionary.C fitxategia 39 00:02:59,740 --> 00:03:04,720 ortografia kontrol-arazo multzo bat egiteko erabili ahal izango duzu fscanf 40 00:03:04,720 --> 00:03:07,930 hiztegira hitz bat irakurri. 41 00:03:07,930 --> 00:03:16,240 Ikusi eta ehuneko 45s da 45 karaktere kate bat bila dezakezu. 42 00:03:16,240 --> 00:03:20,020 Beraz, pixka bat da adierazpen erregular baldarra bezala. 43 00:03:21,150 --> 00:03:26,060 45 eta, edozein karaktere egokitzen faktura bertan izan dezakezu 44 00:03:26,060 --> 00:03:28,080 eta jaso ere. 45 00:03:28,080 --> 00:03:33,480 Eta, ondoren, web berrienak programazio arazoa, adibidez, bigarren 46 00:03:33,480 --> 00:03:40,760 ezarri php kodea distro du benetan egin dugu simple adierazpen erregular. 47 00:03:40,760 --> 00:03:46,790 Eta bat besterik ez da, besterik gabe, web orrian dagoen bada gainditu egiaztatzeko bila 48 00:03:46,790 --> 00:03:51,940 login bai partiduak edo amaitzeko erregistratu. PHP. 49 00:03:52,220 --> 00:03:57,910 Eta gero, egia edo gezurra itzuliz oinarritutako adierazpen erregular mezuaren. 50 00:03:59,400 --> 00:04:01,740 >> Beraz, ez adierazpen erregular erabili? 51 00:04:01,740 --> 00:04:04,820 Zergatik gaur hemen? 52 00:04:05,330 --> 00:04:08,480 Beraz, nahi ez dituzun adierazpen erregular erabili behar den zerbait da 53 00:04:08,480 --> 00:04:11,640 duzun lana egiten du, are gehiago, erraz. 54 00:04:11,640 --> 00:04:15,510 Beraz, XML eta HTML, egia esan, nahiko zaila 55 00:04:15,510 --> 00:04:18,480 adierazpen erregularrak idazteko egingo dugu pixka bat bezala ikusten da. 56 00:04:19,110 --> 00:04:23,280 Beraz, ez dira hizkuntza horien parsers dedikatu. 57 00:04:24,170 --> 00:04:30,060 Gainera, merkataritza-offs eta zehaztasuna ados izan da maiz. 58 00:04:30,060 --> 00:04:36,220 Saiatzen ari zaren bada -, beraz, adierazpen erregular bat ikusi dugu, helbide elektroniko bat egiteko, 59 00:04:37,370 --> 00:04:42,590 baina esan jakin bat e-posta helbidea nahi izan duzu, eta pixkanaka 60 00:04:42,590 --> 00:04:48,570 Adierazpen erregular konplexuago bihur dezake bihurtu zen, hain zuzen ere. 61 00:04:49,580 --> 00:04:52,260 Beraz, merkataritza-off bat izango litzateke. 62 00:04:52,260 --> 00:04:55,330 Ziur ari zaren ongi da adierazpen erregular batekin egiten izan behar duzu. 63 00:04:55,330 --> 00:04:57,920 Badakizu zehazki zer bilatzen ari zaren bada gehiago zentzurik zitekeen 64 00:04:57,920 --> 00:05:02,070 denbora jarri eta eraginkorragoa analizatzaileak bat idazteko. 65 00:05:02,070 --> 00:05:06,980 Eta, azkenik, erregulartasuna ez da arazo historiko bat da 66 00:05:06,980 --> 00:05:08,940 esamoldeak eta hizkuntza. 67 00:05:08,940 --> 00:05:12,960 Adierazpen erregularrak dira benetan askoz indartsuagoa baino 68 00:05:12,960 --> 00:05:16,450 adierazpen erregularrak per formal bat zentzu esan. 69 00:05:17,130 --> 00:05:20,150 >> Beraz, ez dut nahi Urrunegi joan formala teoria sartu da, 70 00:05:20,150 --> 00:05:24,000 baina gehienak hizkuntza dugu, benetan, kode horiek ez dira aldian-aldian. 71 00:05:24,000 --> 00:05:29,110 Hori dela eta, adierazpen erregularrak, batzuetan ez dira seguru duten guztiak. 72 00:05:29,670 --> 00:05:33,150 Funtsean, beraz, ez dago hizkuntza Chomsky hierarkia bat da, 73 00:05:33,150 --> 00:05:38,400 eta adierazpen erregularrak dira eraikitzeko batasuna, lotura-erabiliz, 74 00:05:38,400 --> 00:05:41,810 eta Kleene izar eragiketa egingo dugu minutu batzuk barru ikusi. 75 00:05:43,130 --> 00:05:48,860 Duzun interesa baduzu teorian ez dago nahiko asko daude kanpaia azpian joan da. 76 00:05:50,360 --> 00:05:55,880 >> Labur baten historia, beraz, - besterik testuinguruan hemen - erregular multzo sortu 77 00:05:55,880 --> 00:05:59,580 1950eko hamarkadan, eta, ondoren, simple editoreak hori izan genuen 78 00:05:59,580 --> 00:06:03,300 sartu espresio erregularrak - besterik kateak bilatzeko. 79 00:06:03,570 --> 00:06:09,110 Grep - horrek komando lerroko tresna da - lehen bat izan zen 80 00:06:09,110 --> 00:06:14,160 Oso ezaguna Tresna sartu duten adierazpen erregularrak 1960ko hamarkadan. 81 00:06:14,160 --> 00:06:20,560 80ko hamarkada hasieran, Perl eraiki zen - programazio hizkuntza bat da hori 82 00:06:20,560 --> 00:06:24,110 badakartza adierazpen erregularrak oso nabarmen. 83 00:06:24,550 --> 00:06:30,130 Eta, ondoren, duela gutxi izan dugu Perl espresio erregular bateragarri 84 00:06:30,130 --> 00:06:35,870 batez ere, beste hizkuntza batzuetan erabiltzen duten sintaxia bera gehienetan protokoloak. 85 00:06:36,630 --> 00:06:39,840 Jakina ekitaldirik garrantzitsuena 2008an izan zen, 86 00:06:39,840 --> 00:06:43,040 han izan zen lehen Regular Expressions National Day, 87 00:06:43,040 --> 00:06:47,350 hori da, nire ustez, ekainak 1, nahi duzun hori ospatu nahi izanez gero. 88 00:06:48,430 --> 00:06:50,840 >> Berriz ere, besterik gabe, apur bat gehiago, teoria hemen. 89 00:06:52,180 --> 00:06:55,320 Beraz, ez dira adierazpen erregularrak eraikitzeko modu ezberdinak pare. 90 00:06:55,950 --> 00:07:02,050 Modu sinple bat da adierazpen eraikitzeko ari zaren joan 91 00:07:02,050 --> 00:07:07,500 katea exekutatu interpretatzen - funtsean eraikitzeko apur bat mini-programa bat 92 00:07:07,500 --> 00:07:11,870 Kate bat pieza aztertuko ditu, eta ikusi, "Oh, ez honetan egokitzen adierazpen erregular edo ez?" 93 00:07:12,250 --> 00:07:14,250 Eta gero, hori exekutatu. 94 00:07:14,250 --> 00:07:17,300 Beraz, bada, oso txikia adierazpen erregular duzu, hau da, ziurrenik 95 00:07:17,300 --> 00:07:19,380 modurik eraginkorrena egin. 96 00:07:20,090 --> 00:07:25,420 Eta gero, baduzu - beste aukera bat berreraikitzen mantentzeko 97 00:07:25,420 --> 00:07:30,260 adierazpen joan behar da, eta horretarako simulatu aukera da. 98 00:07:30,440 --> 00:07:37,690 Eta adierazpen erregular algoritmoak saiakera goiztiar horiek 99 00:07:37,690 --> 00:07:44,330 nahiko erraza da eta nahiko azkar, baina ez malgutasuna asko. 100 00:07:44,330 --> 00:07:47,500 Beraz, nahiz eta egiteko gauza batzuk garela ikusteko joan 101 00:07:47,500 --> 00:07:52,860 gaur egun izan dugu konplexuagoa adierazpen erregular egin 102 00:07:52,860 --> 00:07:56,650 duten ezarpenei dira potentzialki askoz motelagoa da; zerbait kontuan hartu da, beraz, 103 00:07:57,510 --> 00:08:02,920 Ez da bat ere eraso askotako adierazpen erregular ukatzea 104 00:08:02,920 --> 00:08:08,330 ustiatzen duten aplikazio horiek berriago baten potentziala 105 00:08:08,330 --> 00:08:10,930 adierazpen erregularrak oso konplexua bilakatzen da. 106 00:08:11,570 --> 00:08:15,650 Eta askoz zentzu berean bufferraren gainezkatzea erasoak dugula ikusi da, 107 00:08:15,650 --> 00:08:21,610 Lan recursive begiztak hori eginez eraso egin behar duzu 108 00:08:21,610 --> 00:08:24,400 inbaditu memoria ahalmena. 109 00:08:24,780 --> 00:08:29,540 Eta bide batez Regexen adierazpen erregular ofiziala pluralak bat da 110 00:08:29,540 --> 00:08:32,890 du anglosaxoietan en idi analogiaz. 111 00:08:33,500 --> 00:08:40,169 >> Ongi da, beraz, Python Liburutegia asko hemen pertsona dute MACS, 112 00:08:40,169 --> 00:08:43,860 beraz, benetan egin dezakezu tira, hau da pantailan. 113 00:08:43,860 --> 00:08:47,480 Adierazpen erregularrak dira Python txertatua. 114 00:08:48,070 --> 00:08:53,020 Eta, beraz, Python MACS da eta, gainera, online eskuragarri esteka honetan aurrez kargatutako. 115 00:08:53,770 --> 00:08:57,350 Beraz, bada, ikusten ari zaren pausatu eta ziurtatu Python izan ditzakezu 116 00:08:58,080 --> 00:09:00,170 play dugu inguruan, hemen. 117 00:09:00,780 --> 00:09:06,420 Ez dago online eskuliburu bat da, beraz, idatzi besterik ez duzu zure ordenagailuan Python sartu 118 00:09:06,420 --> 00:09:10,500 ikusi bertsioak ateratzen terminalean duzu. 119 00:09:11,070 --> 00:09:17,720 Beraz, lotura bat emandako dut eskuliburua 2 bertsioa Python baita Cheat orri bat egiteko. 120 00:09:17,720 --> 00:09:23,100 Badira bertsioa 3 Python da, baina zure Mac ez du nahitaez 121 00:09:23,100 --> 00:09:25,130 aurrekargatutako etorri. 122 00:09:25,130 --> 00:09:27,360 Beraz, ez da oso desberdina da. 123 00:09:27,360 --> 00:09:33,270 Ongi da, beraz, adierazpen erregularrak erabiliz Python oinarriak batzuk. 124 00:09:34,080 --> 00:09:42,650 >> Beraz, hemen, oso erraza adierazpen bat erabiltzen dut, beraz, Python inportazio re egin nuen 125 00:09:43,750 --> 00:09:47,070 eta, ondoren, hartu re.search emaitza. 126 00:09:47,070 --> 00:09:49,910 Eta bilaketa 2 argumentu. 127 00:09:49,910 --> 00:09:56,040 Lehen, adierazpen erregular bat da, eta bigarrena, testua da 128 00:09:56,040 --> 00:09:58,290 edo katea aztertu nahi. 129 00:09:58,290 --> 00:10:01,210 Eta, ondoren, inprimatutakoak I result.group du. 130 00:10:01,580 --> 00:10:05,860 Horiek, beraz, 2, oinarrizko funtzioak gaur egun ikusten ditugun dira 131 00:10:06,790 --> 00:10:10,170 adierazpen erregular buruz ikasteko. 132 00:10:10,170 --> 00:10:12,880 Beraz, behera hautsi Adierazpen erregular hau hemen 133 00:10:12,880 --> 00:10:21,770 h eta gero \ w, eta gero m beraz \ w besterik ez pertsonaia alfabetoaren edozein onartzen du. 134 00:10:21,850 --> 00:10:26,820 Beraz, hemen da "h" baten alde ari gara bilatzen eta, ondoren, beste pertsonaia bat alfabetoaren 135 00:10:26,820 --> 00:10:30,060 eta, ondoren, m, beraz, hemen dator urdaiazpikoa litzateke 136 00:10:30,060 --> 00:10:34,480 , eta "Abraham Lincoln eta urdaiazpiko ogitarteko". 137 00:10:35,040 --> 00:10:37,150 Honek talde horren emaitza da. 138 00:10:37,680 --> 00:10:43,130 Beste gauza bat ezin dugula egin da erabili gure testu kateak aurretik Python. 139 00:10:43,130 --> 00:10:46,220 Beraz, aurrera egingo dut, eta, tira, hemen uste dut. 140 00:10:46,220 --> 00:10:49,210 Python inportazio re. 141 00:10:50,070 --> 00:10:54,000 Eta ni gauza bera egin nahi izanez gero - utzi testua izango da, esan digu, 142 00:10:55,390 --> 00:11:00,800 "Abraham," utzi gerturatzeko gurekin - ez goaz. 143 00:11:01,610 --> 00:11:06,430 Testua, "Abraham urdaiazpikoa jaten." 144 00:11:07,460 --> 00:11:15,260 Ongi da, eta, ondoren, emaitza = re.search. 145 00:11:16,260 --> 00:11:22,020 Eta gero, gure adierazpen h izan daiteke, eta, ondoren, puntu m egingo dut. 146 00:11:22,020 --> 00:11:26,280 Beraz, besterik ez dot edozein karaktere ez dela zenbakiak barne lerro berri bat hartzen du, 147 00:11:26,280 --> 00:11:28,650 ehuneko seinaleak, horrelako ezer. 148 00:11:28,650 --> 00:11:38,030 Eta gero, testu - boom - eta, ondoren, result.group-Bai. 149 00:11:38,030 --> 00:11:41,820 Beraz, hori besterik ez da, nola oinarrizko ezaugarriak ezartzeko hemen. 150 00:11:42,300 --> 00:11:55,110 Izan dugu, testu bat duen eraztun badu - Seiko testu - sartuta esan barrak itzuli asko 151 00:11:55,110 --> 00:12:01,180 eta kateak barruan eta gauzak ezin katea da itxura, 152 00:12:01,180 --> 00:12:08,480 seguruenik, ondoren, nahi dugun gordina testu input Ziur hori onartu egin behar izan du. 153 00:12:08,480 --> 00:12:14,120 Eta hori besterik ez dela dirudi. 154 00:12:14,120 --> 00:12:17,810 Beraz, bada, horietako bakoitza bertan ziren bilatzen dugu ezin dugu ezer aurkitu. 155 00:12:19,070 --> 00:12:21,680 Baina hori nola ezartzeko zenuke; aurretik katearen 156 00:12:21,680 --> 00:12:24,990 Adierazpen erregular gutun r jarri duzu. 157 00:12:26,150 --> 00:12:30,260 >> Ongi da, beraz, joan mantentzeko gurekin. 158 00:12:30,260 --> 00:12:33,730 Guztiak eskubidea - beraz, begiratu bat errepikakorra bikote ereduak hemen gurekin. 159 00:12:34,750 --> 00:12:39,150 Beraz, gauza bat nahi duzun errepikatu egiten da gauzak 160 00:12:40,040 --> 00:12:42,480 ari zaren testu bidez bilatzen. 161 00:12:42,480 --> 00:12:48,300 Beraz, b edozein zenbaki eta ondoren egin - AB * egin duzu. 162 00:12:48,630 --> 00:12:51,620 Eta gero, badaude beste arau-multzo bat ere. 163 00:12:51,620 --> 00:12:54,380 , Eta horietan guztietan itxura dezakezu; dut batzuk bidez exekutatu 164 00:12:54,380 --> 00:12:57,630 gehien erabiltzen direnak. 165 00:12:57,630 --> 00:13:03,920 Beraz, AB + da, edozein b N 0 baino handiagoa izan ondoren. 166 00:13:04,510 --> 00:13:08,000 ab? 0 edo 1 b ondoren. da 167 00:13:09,190 --> 00:13:18,580 AB {N} bada bat b N ondoren, eta, ondoren, etab. 168 00:13:18,580 --> 00:13:22,820 Daukazula 2 kizkur giltza zenbakiak bada sorta bat ari zaren zehaztuz 169 00:13:23,300 --> 00:13:25,440 hori, seguru asko, parekatuak izan daiteke. 170 00:13:26,390 --> 00:13:30,420 Beraz, gehiago ikusiko dugu, minutu batean bikote errepikakorra ereduak at. 171 00:13:31,960 --> 00:13:42,300 Beraz, 2, gauzak gogoan denean ereduarekin bat datorren Tresna horiek hemen erabiliz. 172 00:13:42,300 --> 00:13:52,120 Beraz, esan hm du begiratu nahi dugu ", Abraham Lincoln egiten urdaiazpiko ogitarteko". 173 00:13:52,120 --> 00:13:55,230 Beraz, Abraham Lincoln-en izena aldatu dut Abraham. 174 00:13:55,230 --> 00:14:00,290 Eta orain, zer da hau bilaketa-funtzio itzultzen bilatzen dugu, 175 00:14:00,290 --> 00:14:03,270 eta itzultzen bakarrik urdaiazpikoa kasu honetan. 176 00:14:03,620 --> 00:14:08,080 Eta horregatik bilatu besterik naturalean Ezkerreko ilaran hartzen du. 177 00:14:08,080 --> 00:14:12,130 Guztiak eta adierazpen erregularrak zehaztu ez baduzu, bestela egin egingo dela. 178 00:14:12,830 --> 00:14:18,880 Nahi izan dugu, guztiak aurkitu behar bada ez dagoela funtzio bat da - aurkitu guztiak. 179 00:14:18,880 --> 00:14:35,100 Beraz, hori besterik ezin guztiak = re.findall ('h.m', testua) itxura 180 00:14:35,100 --> 00:14:44,540 eta, ondoren, all.group (). 181 00:14:44,540 --> 00:14:51,040 Guztiak bi urdaiazpiko eta urdaiazpikoa ekoizten; kasu honetan bi Abraham kate baten urdaiazpikoa bakoitzean. 182 00:14:51,610 --> 00:14:55,110 Beraz, hori beste aukera bat da. 183 00:14:56,250 --> 00:15:06,940 >> Great. Beste gauza kontuan izan behar da, adierazpen erregularrak hartzen duten handiena intuizioa. 184 00:15:06,940 --> 00:15:09,520 Ikus dezagun adibide honetan gurekin. 185 00:15:10,200 --> 00:15:16,070 Duten ezkerreko gehien bilaketa egin dugu hemen, eta, ondoren, handiagoak bilaketa bat egiten saiatu naiz 186 00:15:16,070 --> 00:15:18,800 du Kleene izar operadoreak erabiliz. 187 00:15:18,800 --> 00:15:24,180 Hala, "Abraham Lincoln egiten urdaiazpiko ogitarteko", eta lortu dut soilik itzuli 188 00:15:24,180 --> 00:15:26,280 ondorioz m. 189 00:15:26,280 --> 00:15:31,670 Akats horren arrazoia izan da hartu duten I zitekeen kopurua edozein 190 00:15:31,670 --> 00:15:36,140 h egin nuen, ez duelako zehaztu ezer h eta m arteko joan. 191 00:15:36,140 --> 00:15:42,010 Adibide bakarra dagoela izan m - adibide bakarra dago m bertan 192 00:15:42,010 --> 00:15:46,220 eta h-ren edozein zenbaki besterik ez ziren kate m. 193 00:15:46,490 --> 00:15:51,850 Gero, saiatu naiz berriz, esan nuen "Ados, utzi benetako talde handiena gurekin hemen." 194 00:15:51,850 --> 00:15:59,670 Eta, ondoren, h nuen. * M, besterik h eta m arteko karaktere kopurua edozein itzultzen beraz. 195 00:16:00,280 --> 00:16:02,950 Eta ari zaren besterik ez bada hasten, eta pentsatzen "Oh, ongi, ongi egingo da 196 00:16:02,950 --> 00:16:11,560 get me urdaiazpikoa, "hartzen da benetan h dena, Abraham Lincoln-en 197 00:16:11,560 --> 00:16:13,690 bidea sortu guztiak urdaiazpikoa amaieran. 198 00:16:14,040 --> 00:16:18,110 Greedy da; h ikusten da - honek beste testu guztiak - m, 199 00:16:18,110 --> 00:16:21,280 eta horixe da oraindik hartzen du 200 00:16:22,060 --> 00:16:27,480 Hau da, bereziki egregious - honen ezaugarri bat ere bidali ahal dugu 201 00:16:27,480 --> 00:16:30,670 zehaztu ez da izango Greedy beste funtzioak erabiliz. 202 00:16:31,480 --> 00:16:34,490 Baina honek zerbait kontuan hartu behar dugu, batez ere, da 203 00:16:34,490 --> 00:16:38,720 Testuaren HTML begira, eta horrek arrazoi bat dela 204 00:16:38,720 --> 00:16:41,500 adierazpen erregularrak zaila HTML. 205 00:16:42,460 --> 00:16:46,310 Zuk irekitako HTML etiketa eta, ondoren, gauza asko erdian galtzen delako 206 00:16:46,310 --> 00:16:49,820 eta, ondoren, beste batzuk itxi HTML etiketa askoz beranduago programan, 207 00:16:49,820 --> 00:16:55,420 besterik ez duzu jaten sortu zure kodea HTML asko ziurrenik akats arabera. 208 00:16:56,200 --> 00:17:01,840 >> Guztiak eskubidea - beraz, karaktere bereziak, beste hizkuntza askotan bezala, 209 00:17:01,840 --> 00:17:04,780 barra erabiliz ihes egiten dugu. 210 00:17:04,780 --> 00:17:10,329 Beraz, puntua erabili ahal izango dugu edozein karaktere zehazteko linea berri bat izan ezik. 211 00:17:10,329 --> 00:17:14,550 Ihes w erabili ahal izango dugu, edozein karaktere alfabetiko zehazteko. 212 00:17:14,550 --> 00:17:20,329 Eta analogia ihes osokoa edozein d - Zenbakizko izaera. 213 00:17:20,630 --> 00:17:27,440 Zehaztu ahal izango dugu - Parentesi erabili ahal izango dugu erlazionatutako adierazpideak zehazteko. 214 00:17:27,440 --> 00:17:30,970 Beraz, hau, b, edo c onartuko luke. 215 00:17:31,320 --> 00:17:37,000 Eta, gainera, ezin dugu zehaztu, edo bat edo b aukerak. 216 00:17:37,000 --> 00:17:41,110 Adibidez - ginen anitz aukerak bila bazabiltza 217 00:17:41,110 --> 00:17:44,940 Parentesi edo operadorea erabili ahal izan genuen bezala - 218 00:17:44,940 --> 00:17:52,480 beraz, atzera digute adibide hau hemen. 219 00:17:53,000 --> 00:17:59,790 Eta orain, utzi gaitu - atzera utzi digute adibide hau, hemen, eta, ondoren, 220 00:17:59,790 --> 00:18:12,290 hartu ae - beraz, hau behar itzultzeko - hau da oraindik, Abraham asmatzen dut. 221 00:18:12,290 --> 00:18:17,410 Honetan, beraz, - egiten dugun guztiak galtzen - handia. 222 00:18:17,410 --> 00:18:22,700 Hargatik testua eguneratzeko hemen. 223 00:18:22,700 --> 00:18:34,690 "Abraham urdaiazpikoa jan bitartean bere hemming -. Hemming bitartean" Great. 224 00:18:44,090 --> 00:18:47,330 Guztiak. Great. Orain urdaiazpikoa, urdaiazpikoa, eta hem dugu. 225 00:18:48,510 --> 00:18:59,370 Hemming bitartean -, berriz zion Humming - to hem Humming zion bitartean. Great. 226 00:19:00,350 --> 00:19:03,250 Gauza bera. 227 00:19:03,820 --> 00:19:09,180 Gaur egun, oraindik ere, guztiak itzultzen ditu, besterik gabe, urdaiazpikoa, urdaiazpikoa, eta hem picking gogaikarria edo hura gabe. 228 00:19:09,940 --> 00:19:22,600 Great - beraz, zer nahi dugu, bai begiratu bada - beraz, ezin izan dugu 229 00:19:23,510 --> 00:19:33,810 zion edo - itzuli dugu hori. 230 00:19:34,810 --> 00:19:45,760 Ados - beraz - guztiak eskuin - postuetan ere erabil dezakezu kurtsore edo dolarraren ikurra 231 00:19:45,760 --> 00:19:49,350 ari zaren hasieran zerbait edo katea baten amaiera bila zehazteko. 232 00:19:50,260 --> 00:19:52,260 Edo hasiera edo hitz baten amaieran. 233 00:19:52,400 --> 00:19:54,470 Hori horrela erabili behar da. 234 00:19:55,630 --> 00:20:01,160 >> Ados - beraz inguruan jolastu gurekin testu bloke bat baino apur bat handiagoa baita. 235 00:20:03,950 --> 00:20:08,310 Let Zutabe hau esan digu, hemen - adierazpen hau hemen. 236 00:20:08,310 --> 00:20:11,360 Adierazpen erregular boterea da patroi dutela zehaztu dezakezu 237 00:20:11,360 --> 00:20:13,390 ez bakarrik konpondu pertsonaiak. 238 00:20:14,900 --> 00:20:18,790 Egin dezagun - utzi bloke honetan deitu. 239 00:20:22,400 --> 00:20:27,110 Orduan, oraindik, guztiak irakurri ahal izango dugu 240 00:20:28,890 --> 00:20:50,820 Eta, ondoren, ez dute - utzi = guztiak egin digu; beraz, zer gauza batzuk hemen izan dugu bilatu errentagarrian? 241 00:20:50,820 --> 00:20:54,070 Adierazpen belarria eman ahal izan dugu. 242 00:20:55,050 --> 00:21:01,520 Ez da oso interesgarria da. Nola horri buruz? Zer gertatzen den ikusiko dugu. 243 00:21:03,710 --> 00:21:05,710 Eman dut arazo bat. 244 00:21:06,380 --> 00:21:10,750 Edozein gauza kopurua re eta guztien aurrean, beraz. 245 00:21:10,750 --> 00:21:15,630 Beraz, hasiera-hasieratik, gehienez re guztiak, agian, pare bat aldiz dena itzuliko da. 246 00:21:18,800 --> 00:21:21,970 Eta gero, hemen adierazpen erregular boterea da daukagu ​​dute 247 00:21:21,970 --> 00:21:24,900 ereduak zehaztu, ezin da besterik karaktere hemen. 248 00:21:24,900 --> 00:21:28,510 Horregatik, azken re modu guztiak, hasi ezkerreko gehienak bertan izan zen eta Greedy. 249 00:21:30,710 --> 00:21:32,710 Demagun ikusi - zer gehiago ezin bilatuko dugu. 250 00:21:32,710 --> 00:21:39,860 Gauza bat asmatu dut zinen izenordainak bila interesa galtzen du, eta berak, 251 00:21:39,860 --> 00:21:44,600 s, 0 edo 1 balioa izateagatik ezin duzu egiaztatu 252 00:21:44,600 --> 00:21:49,710 eta adierazpena egin zuen, eta hori da, ziurrenik, ez itzuli joan - 253 00:21:49,710 --> 00:21:58,020 Oh, zuen itzuli han boterea, egun hartan ari garelako bila, hemen uste dut. 254 00:22:00,590 --> 00:22:06,270 Let honek zerbait hasieran etorri zehaztuz saiatu gurekin. 255 00:22:06,640 --> 00:22:09,530 Dezagun hori jaisten off ikusteko gurekin. 256 00:22:09,530 --> 00:22:19,630 Horretarako gantz ahal izango dugu, eta ez, ez dugu ezer lortu zuen eta zuen delako 257 00:22:19,630 --> 00:22:22,870 ez esaldi hau gertatzen. 258 00:22:24,960 --> 00:22:30,410 Great. Ados - beraz itzuli katua hemen. 259 00:22:30,410 --> 00:22:35,720 Beraz, konplexu ereduak burmuinean da mina. 260 00:22:35,720 --> 00:22:40,500 Beraz, hori dela eta, adierazpen erregularrak erabiltzen ditugu gai horiek saihesteko. 261 00:22:40,820 --> 00:22:43,520 >> Beraz, hemen batzuk erabilgarria moduak play inguruan ditzakezu. 262 00:22:43,520 --> 00:22:50,290 Begiratu bilatu dugu gaur egun, baina baita dezakezu Partidaren, zatiketa, findall, eta taldeak erabiltzen. 263 00:22:50,290 --> 00:22:53,970 Beraz, beste cool gauza adierazpen erregular batekin egin dezakezu, besterik gabe, gainera 264 00:22:53,970 --> 00:22:58,870 ereduak bila eredu bat hartzen ari da, eta partida guztiak eskuan - 265 00:22:58,870 --> 00:23:02,530 bere aldagai -, eta, ondoren, zure kodea dutenak erabiliz geroago. 266 00:23:02,850 --> 00:23:05,980 Hori nahiko lagungarria izan daiteke. Beste gauza kontatuta egon liteke. 267 00:23:05,980 --> 00:23:11,720 Beraz, patroia espresio erregular instantzia kopurua zenbatu ahal izango dugu, 268 00:23:11,720 --> 00:23:13,960 eta horixe da talde erabili ahal izango dugu. 269 00:23:13,960 --> 00:23:17,550 Eta beste moduak eta baita ere izan liteke. 270 00:23:18,040 --> 00:23:22,980 Beraz, nahi dut pixka bat gehiago hitz egiteko beste modu batzuk adierazpen erregularrak erabili dezakezu buruz. 271 00:23:22,980 --> 00:23:29,100 >> Beraz, beste bat gehiago aurreratu aplikazioa etortze zalantzazko da. 272 00:23:29,100 --> 00:23:33,450 Beraz, bada adierazpena, Julio Cesar testu bat bilatzen ari zaren, 273 00:23:33,450 --> 00:23:37,740 eta bai Cayo Julio Cesar izena edo Julio Cesar ikusten duzu beste hizkuntza batzuetan, 274 00:23:37,740 --> 00:23:44,400 ondoren, baliteke nahi pisu batzuk esleitzeko balio horiek. 275 00:23:44,400 --> 00:23:48,930 Eta ez da aski hurbil badu - zeharkatu zenbait atari bat bada -, ondoren, nahi duzun 276 00:23:48,930 --> 00:23:50,860 gai Julio Cesar onartu ahal izateko. 277 00:23:50,860 --> 00:24:00,580 Beraz, badaude pare bat desberdinak egiteko aplikazio bat baita gutxi batzuk beste hizkuntza batean. 278 00:24:02,580 --> 00:24:08,420 Hona hemen batzuk beste tresna batzuk, Regex Pal - a handy little app online 279 00:24:08,420 --> 00:24:12,190 egiaztatu zure adierazpen erregularrak dira, bada, behar bezala osatua. 280 00:24:12,190 --> 00:24:18,500 Badira ere standalone Tresna dezakezu zure ordenagailuan exekutatu 281 00:24:18,500 --> 00:24:22,100 Pico Ultra, eta baita, besterik gabe, cookbooks bezala. 282 00:24:22,100 --> 00:24:25,410 Beraz, bada, proiektu bat adierazpen erregular tona bat inplikatzen ari zara 283 00:24:25,410 --> 00:24:29,810 hau da, ziurrenik leku gaur esparrutik kanpo joan. 284 00:24:31,520 --> 00:24:35,770 Eta gero, besterik ez dizu nola ohikoa da zentzu 285 00:24:35,770 --> 00:24:44,090 ez da grep Unix-en, Perl ditu eraiki-en, eta han C C. PCRE da 286 00:24:44,090 --> 00:24:48,890 Eta, ondoren, beste hizkuntza horiek guztiak ere izan adierazpen erregular paketeak 287 00:24:48,890 --> 00:24:52,020 hori, funtsean, sintaxia berean, gaur egun, zapore bat lortu dugu lan. 288 00:24:52,020 --> 00:24:54,790 PHP, Java, Ruby, eta abar. 289 00:24:56,080 --> 00:24:58,980 >> Google Code Search da, benetan merezi du; bat da 290 00:24:58,980 --> 00:25:05,720 gutxi daude, aplikazio horrek ematen dio publikoari sartzeko 291 00:25:05,720 --> 00:25:07,800 bere datu-basean adierazpen erregularrak erabiliz. 292 00:25:07,800 --> 00:25:12,920 Beraz, bada, begiratu Google Code Search duzun kode aurkitu dezakezu 293 00:25:12,920 --> 00:25:16,880 ari zaren nola funtzio bat erabiltzen egon liteke instantzia baten bila bazabiltza, 294 00:25:16,880 --> 00:25:21,610 Adierazpen erregular bat erabili ahal izango duzu ari, kasu ezberdinetan, era guztietako erabilitako funtzioa aurkitu. 295 00:25:21,610 --> 00:25:28,000 Fwrite eman ahal izango duzu begiratu, eta, ondoren, idatzi jo du ezin begiratuz edo irakurri 296 00:25:28,000 --> 00:25:32,000 nahi duzun fwrite ari dira kasu horretan erabilitako adibide bat bada. 297 00:25:33,530 --> 00:25:37,010 Beraz, gauza bera dago, eta hemen erreferentzia batzuk. 298 00:25:37,010 --> 00:25:40,990 Hau online eskuragarri egongo da, bai eta, beraz, aurreraka joan bada 299 00:25:40,990 --> 00:25:45,560 to Python, grep, Perl begiratu nahi duzun - nahi duzu inspirazio batzuk lortzeko 300 00:25:45,560 --> 00:25:50,650 edo nahi izanez gero, begiratu teoria at hemen badira leku off jauzia onak. 301 00:25:50,650 --> 00:25:53,870 Eskerrik asko. 302 00:25:58,470 --> 00:25:59,910 [CS50.TV]