1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seminè: Modèl Matche ak ekspresyon regilye] 2 00:00:02,000 --> 00:00:04,000 [John Mussman-Inivèsite Harvard] 3 00:00:04,000 --> 00:00:07,220 [Sa a se CS50.-CS50.TV] 4 00:00:07,780 --> 00:00:11,610 Okay. Oke, akeyi tout moun. Sa a se CS50 2012. 5 00:00:11,780 --> 00:00:16,610 Non mwen se John, epi mwen pral pale jodi a sou ekspresyon regilye. 6 00:00:16,610 --> 00:00:22,530 Ekspresyon regilye se sitou yon zouti, men tou, pafwa itilize 7 00:00:22,530 --> 00:00:28,650 nan Kòd aktivman esansyèlman matche ak menm modèl yo epi strings. 8 00:00:28,650 --> 00:00:33,800 Se konsa, isit la se yon komik entènèt soti nan xkcd. 9 00:00:34,440 --> 00:00:42,370 Nan sa a komik gen yon mistè touye moun kote asasen an gen 10 00:00:42,370 --> 00:00:47,860 swiv yon moun an vakans, ak gwo chabwak yo gen 11 00:00:47,860 --> 00:00:52,500 Fouye nan 200 megabit nan Imèl kap chèche yon adrès. 12 00:00:52,500 --> 00:00:56,090 Apre sa, yo se sou bay moute lè yon moun ki konnen ekspresyon regilye - 13 00:00:56,090 --> 00:01:00,550 prezimableman yon superhero - swoops desann epi ekri kèk Kòd 14 00:01:00,550 --> 00:01:02,970 epi rezoud mistè a touye moun. 15 00:01:02,970 --> 00:01:07,370 Se konsa, prezimableman ke yo pral yon bagay ke ou yo pral pouvwa fè 16 00:01:07,370 --> 00:01:09,370 Apre sa, seminè. 17 00:01:09,370 --> 00:01:12,250 Nou ap jis ale nan bay yon entwodiksyon brèf nan lang la 18 00:01:12,250 --> 00:01:16,770 ak ba ou ase Kisa n 'ale dèyè plis resous sou pwòp ou yo. 19 00:01:17,680 --> 00:01:21,700 >> Se konsa, regilye ekspresyon gade fondamantalman tankou sa a. 20 00:01:22,930 --> 00:01:25,550 Sa a se yon ekspresyon regilye nan Ruby. 21 00:01:25,550 --> 00:01:29,280 Li se pa fò anpil diferan atravè lang yo. 22 00:01:29,690 --> 00:01:37,630 Nou gen jis sou bar yo kòmanse epi make ekspresyon ki regilye nan Ruby. 23 00:01:37,630 --> 00:01:42,880 Lè sa a se yon ekspresyon regilye nan gade pou nan modèl adrès elektwonik ou. 24 00:01:42,880 --> 00:01:49,160 Se konsa, nou wè nan ti jan nan premye sanble pou nenpòt ki karaktè alfa. 25 00:01:50,500 --> 00:01:54,880 Sa se paske adrès imel souvan gen kòmanse ak yon karaktè alfabetik. 26 00:01:55,460 --> 00:01:59,330 Lè sa a, nenpòt karaktè espesyal ki te swiv pa senbòl @. 27 00:01:59,330 --> 00:02:03,260 Lè sa a, menm bagay la pou non domèn. 28 00:02:03,260 --> 00:02:10,030 Lè sa a, ant 2 ak 4 karaktè yo gade pou com la.,. Nèt, ak sou sa. 29 00:02:10,850 --> 00:02:13,200 Se konsa, ki se yon lòt egzanp nan ekspresyon regilye. 30 00:02:13,200 --> 00:02:17,270 Se konsa, regilye ekspresyon yo se pwotokòl pou jwenn patters nan yon tèks. 31 00:02:17,270 --> 00:02:21,130 Yo fè konparezon, seleksyon, ak ranplasman. 32 00:02:21,690 --> 00:02:27,970 Se konsa, yon egzanp twazyèm se jwenn tout nimewo telefòn mete fen nan 54 an yon anyè. 33 00:02:27,970 --> 00:02:34,360 Se konsa, anvan David dechir moute anyè a CS50 nou te ka fè rechèch pou 34 00:02:34,360 --> 00:02:40,450 yon modèl kote nou gen parantèz Lè sa a, 3 nimewo Lè sa a, fini parantèz, 35 00:02:40,450 --> 00:02:44,070 3 plis nimewo, yon priz, 2 chif, ak Lè sa a 54. 36 00:02:44,070 --> 00:02:48,310 Men, ki ta ka esansyèlman ki jan nou vini ak yon ekspresyon regilye pou fè rechèch pou sa. 37 00:02:49,150 --> 00:02:52,960 >> Se konsa, gen - nou te fè kèk bagay sa yo nan CS50 ki yon ti jan tankou 38 00:02:52,960 --> 00:02:59,740 ekspresyon regilye, se konsa - pou egzanp - nan dosye a dictionary.C 39 00:02:59,740 --> 00:03:04,720 pou mete nan pwoblèm chèk eple ou ka te itilize fskanf 40 00:03:04,720 --> 00:03:07,930 li nan yon mo ki soti nan diksyonè a. 41 00:03:07,930 --> 00:03:16,240 Men, ou ka wè 45s la pousantaj se kap chèche yon afè de 45 karaktè. 42 00:03:16,240 --> 00:03:20,020 Se konsa, li se yon ti jan tankou yon ekspresyon estanda regilye. 43 00:03:21,150 --> 00:03:26,060 Epi ou ka gen nenpòt karaktè 45 ki anfòm bòdwo a nan gen 44 00:03:26,060 --> 00:03:28,080 epi chwazi sa yo moute. 45 00:03:28,080 --> 00:03:33,480 Lè sa a, egzanp nan dezyèm nan pwoblèm nan pwogram entènèt ki pi resan 46 00:03:33,480 --> 00:03:40,760 mete nan Kòd la distribisyon pou php nou aktyèlman fè gen yon senp ekspresyon regilye. 47 00:03:40,760 --> 00:03:46,790 Lè sa a yonn, se jis tou senpleman kap yo tcheke si paj wèb la ki te pase nan 48 00:03:46,790 --> 00:03:51,940 matche ak swa login oswa Logout enskri. PHP. 49 00:03:52,220 --> 00:03:57,910 Lè sa a, retounen vrè oswa fo ki baze sou ki matche ekspresyon regilye. 50 00:03:59,400 --> 00:04:01,740 >> Se konsa, lè ou itilize regilye ekspresyon? 51 00:04:01,740 --> 00:04:04,820 Poukisa ou isit la jodi a? 52 00:04:05,330 --> 00:04:08,480 Se konsa, ou pa vle sèvi ak regilye ekspresyon lè gen nan yon bagay ki 53 00:04:08,480 --> 00:04:11,640 fè travay la pou ou menm pi fasil. 54 00:04:11,640 --> 00:04:15,510 Se konsa, XML ak HTML yo aktyèlman trè difisil 55 00:04:15,510 --> 00:04:18,480 yo ekri ekspresyon regilye pou jan nou pral wè nan yon ti kras. 56 00:04:19,110 --> 00:04:23,280 Se konsa, gen analizeur devwe pou moun ki lang yo. 57 00:04:24,170 --> 00:04:30,060 Ou bezwen tou ap gen pwoblèm ak konpwomi nan komès ak presizyon souvan. 58 00:04:30,060 --> 00:04:36,220 Si ou yo ap eseye - Se konsa, nou te wè yon ekspresyon regilye pou yon adrès imel, 59 00:04:37,370 --> 00:04:42,590 men di ou te vle yon adrès imel espesifik ak piti piti a 60 00:04:42,590 --> 00:04:48,570 regilye ekspresyon ta ka vin pi konplèks jan li te vin pi plis presi. 61 00:04:49,580 --> 00:04:52,260 Se konsa, ki ta ka yon sèl komès la. 62 00:04:52,260 --> 00:04:55,330 Ou gen yo dwe asire ke ou ap oke fè avèk ekspresyon regilye a. 63 00:04:55,330 --> 00:04:57,920 Si ou konnen ekzakteman ki sa ou ap chèche pou li ta ka fè plis sans 64 00:04:57,920 --> 00:05:02,070 yo mete nan tan la ak ekri yon analizeur pi efikas. 65 00:05:02,070 --> 00:05:06,980 Epi finalman gen yon pwoblèm istorik ak regilarite a 66 00:05:06,980 --> 00:05:08,940 nan ekspresyon ak lang yo. 67 00:05:08,940 --> 00:05:12,960 Ekspresyon regilye nan reyalite pi plis pouvwa anpil pase 68 00:05:12,960 --> 00:05:16,450 ekspresyon regilye pou chak di nan yon sans fòmèl. 69 00:05:17,130 --> 00:05:20,150 >> Se konsa, mwen pa ta vle ale twò lwen nan teyori a fòmèl, 70 00:05:20,150 --> 00:05:24,000 men pifò lang ke nou Kòd nan aktyèlman yo pa regilye. 71 00:05:24,000 --> 00:05:29,110 Lè sa a se poukisa ekspresyon regilye pafwa pa konsidere kòm tout sa ki an sekirite. 72 00:05:29,670 --> 00:05:33,150 Se konsa, fondamantalman gen yon yerachi Chomsky pou lang, 73 00:05:33,150 --> 00:05:38,400 ak ekspresyon regilye yo bati lè l sèvi avèk sendika, Anchènman, 74 00:05:38,400 --> 00:05:41,810 ak operasyon nan zetwal Kleene ke nou pral wè nan kèk minit. 75 00:05:43,130 --> 00:05:48,860 Si w enterese nan teyori gen byen yon anpil ale sou la anba kapo a. 76 00:05:50,360 --> 00:05:55,880 >> Se konsa, yon istwa kout - jis pou kontèks la isit la - ansanm regilye li moute soti deyò 77 00:05:55,880 --> 00:05:59,580 nan ane 1950 yo, ak Lè sa a, nou te gen editè senp ki 78 00:05:59,580 --> 00:06:03,300 enkòpore ekspresyon regilye - jis pou chèche strings. 79 00:06:03,570 --> 00:06:09,110 Grèp - ki se yon zouti liy lòd - se te youn nan premye a 80 00:06:09,110 --> 00:06:14,160 trè popilè zouti ki enkòpore ekspresyon regilye nan ane 1960 yo. 81 00:06:14,160 --> 00:06:20,560 Nan '80s yo, pèrl te bati - se yon lang programmation ki 82 00:06:20,560 --> 00:06:24,110 genyen ladan ekspresyon regilye trè gwo lo a. 83 00:06:24,550 --> 00:06:30,130 Lè sa a, pi plis dènyèman nou te genyen pèrl konpatib ekspresyon regilye 84 00:06:30,130 --> 00:06:35,870 pwotokòl fondamantalman nan lòt lang yo ki itilize anpil nan sentaks la menm. 85 00:06:36,630 --> 00:06:39,840 Natirèlman evènman ki pi enpòtan an te an 2008 86 00:06:39,840 --> 00:06:43,040 kote te gen premye Nasyonal la regilye ekspresyon jounen an, 87 00:06:43,040 --> 00:06:47,350 ki mwen kwè se 1 jen si ou vle selebre sa. 88 00:06:48,430 --> 00:06:50,840 >> Yon fwa ankò, jis yon ti jan ti kras pi plis teyori isit la. 89 00:06:52,180 --> 00:06:55,320 Se konsa, gen yon koup diferan fason pou konstwi ekspresyon regilye. 90 00:06:55,950 --> 00:07:02,050 Yon fason ki senp se bati ekspresyon la ke ou yo ale nan 91 00:07:02,050 --> 00:07:07,500 kouri sou fisèl la entèprete - fondamantalman bati yon ti kras mini-pwogram ki 92 00:07:07,500 --> 00:07:11,870 pral analize moso nan yon kòd ak wè, "O, sa a anfòm ekspresyon ki regilye oswa ou pa?" 93 00:07:12,250 --> 00:07:14,250 Lè sa a, kouri sa. 94 00:07:14,250 --> 00:07:17,300 Se konsa, si ou gen yon ekspresyon anpil ti regilye, sa a se pwobableman 95 00:07:17,300 --> 00:07:19,380 fason ki pi efikas fè li. 96 00:07:20,090 --> 00:07:25,420 Lè sa a, si ou - yon lòt opsyon se kenbe rekonstwi a 97 00:07:25,420 --> 00:07:30,260 ekspresyon tankou ou ale, e se pou posibilite estimilan. 98 00:07:30,440 --> 00:07:37,690 Apre sa, tantativ bonè nan algoritm ekspresyon regilye yo te 99 00:07:37,690 --> 00:07:44,330 relativman senp ak relativman vit, men pa t 'gen yon anpil nan fleksibilite. 100 00:07:44,330 --> 00:07:47,500 Se konsa, yo fè menm kèk nan bagay sa yo ke nou pral gade nan 101 00:07:47,500 --> 00:07:52,860 Jodi a nou gen te fè ekspresyon pi konplèks regilye 102 00:07:52,860 --> 00:07:56,650 en ki potansyèlman anpil pi dousman; se konsa ke se yon bagay yo met nan tèt ou 103 00:07:57,510 --> 00:08:02,920 Genyen tou yon regilye ekspresyon refi varyete atak 104 00:08:02,920 --> 00:08:08,330 ki esplwate potansyèl la pou sa yo en plus nan 105 00:08:08,330 --> 00:08:10,930 ekspresyon regilye yo vin trè konplèks. 106 00:08:11,570 --> 00:08:15,650 Ak nan anpil sans a menm ki nou te wè nan atak debòde tanpon, 107 00:08:15,650 --> 00:08:21,610 ou gen atak ki travay pa fè pasan repetitif ki 108 00:08:21,610 --> 00:08:24,400 vin sènen kapasite nan memwa. 109 00:08:24,780 --> 00:08:29,540 Ak nan chemen an Regexen se youn nan pliryèl ofisyèl yo nan ekspresyon regilye 110 00:08:29,540 --> 00:08:32,890 pa analoji bèf nan Anglo Saxon la. 111 00:08:33,500 --> 00:08:40,169 >> Oke, kidonk Bibliyotèk Piton anpil nan nou isit la nan moun gen Macs, 112 00:08:40,169 --> 00:08:43,860 konsa ou ka aktyèlman rale sa a moute sou ekran an. 113 00:08:43,860 --> 00:08:47,480 Ekspresyon regilye yo bati nan Piton. 114 00:08:48,070 --> 00:08:53,020 Se konsa, Piton se precharje sou Macs ak tou disponib sou entènèt nan lyen sa a. 115 00:08:53,770 --> 00:08:57,350 Se konsa, si w ap gade ou kapab pran yon poz, epi fè sèten ou gen Piton 116 00:08:58,080 --> 00:09:00,170 kòm nou jwe alantou isit la. 117 00:09:00,780 --> 00:09:06,420 Gen yon sou entènèt manyèl, se konsa si ou jis tape Piton nan òdinatè w lan 118 00:09:06,420 --> 00:09:10,500 ou pral wè ke vèsyon an vini leve nan tèminal la. 119 00:09:11,070 --> 00:09:17,720 Se konsa, mwen bay yon ap mennen nan manyèl la pou Haitian Creole 2 nan Piton kòm byen ke yon fèy tronpe. 120 00:09:17,720 --> 00:09:23,100 Gen yon Version 3 nan Piton, men Mac ou a pa nesesèman 121 00:09:23,100 --> 00:09:25,130 vini ak ki precharje. 122 00:09:25,130 --> 00:09:27,360 Se konsa, pa fò anpil diferan. 123 00:09:27,360 --> 00:09:33,270 Oke, kidonk kèk Basics nan lè l sèvi avèk ekspresyon regilye nan Piton. 124 00:09:34,080 --> 00:09:42,650 >> Se konsa, isit la mwen itilize yon ekspresyon trè senp, se konsa mwen te fè Piton re enpòte 125 00:09:43,750 --> 00:09:47,070 epi li pran rezilta a nan re.search. 126 00:09:47,070 --> 00:09:49,910 Ak rechèch la pran 2 agiman. 127 00:09:49,910 --> 00:09:56,040 Premye a se ekspresyon ki regilye, ak dezyèm la se tèks la 128 00:09:56,040 --> 00:09:58,290 oswa fisèl ou vle analize. 129 00:09:58,290 --> 00:10:01,210 Lè sa a, mwen enprime soti result.group la. 130 00:10:01,580 --> 00:10:05,860 Se konsa, sa yo, se 2 fonksyon debaz yo nou pral wè jodi a 131 00:10:06,790 --> 00:10:10,170 nan aprann sou ekspresyon regilye. 132 00:10:10,170 --> 00:10:12,880 Se konsa, jis kraze desann sa a ekspresyon regilye isit la 133 00:10:12,880 --> 00:10:21,770 h ak Lè sa a \ w ak Lè sa a m konsa \ w jis aksepte nenpòt karaktè alfabetik an la. 134 00:10:21,850 --> 00:10:26,820 Se konsa, isit la nou yo ap chèche pou yon "h" ak Lè sa a, yon lòt karaktè alfabetik 135 00:10:26,820 --> 00:10:30,060 ak Lè sa a m, se konsa isit la ki ta ka matche ak janbon 136 00:10:30,060 --> 00:10:34,480 nan, "Abraham Lincoln ak janbon sandwich." 137 00:10:35,040 --> 00:10:37,150 Sa a se rezilta a nan gwoup sa a. 138 00:10:37,680 --> 00:10:43,130 Yon lòt bagay ke nou ka fè se sèvi ak strings anvan nou yo nan tèks nan Piton. 139 00:10:43,130 --> 00:10:46,220 Se konsa, mwen devine mwen pral ale pi devan epi rale ke moute isit la. 140 00:10:46,220 --> 00:10:49,210 Piton re enpòte. 141 00:10:50,070 --> 00:10:54,000 Men, si m 'te fè menm bagay la - se pou nou di tèks se, 142 00:10:55,390 --> 00:11:00,800 "Abraram," Se pou nou rale nan - gen nou ale. 143 00:11:01,610 --> 00:11:06,430 Tèks se, "Abraram manje janbon." 144 00:11:07,460 --> 00:11:15,260 Oke, ak Lè sa a lakòz = re.search. 145 00:11:16,260 --> 00:11:22,020 Lè sa a, ekspresyon nou ka h, ak Lè sa a, mwen pral fè dot m. 146 00:11:22,020 --> 00:11:26,280 Se konsa, dot jis pran nenpòt ki karaktè ki se pa yon liy nouvo ki gen ladan nimewo, 147 00:11:26,280 --> 00:11:28,650 pousantaj siy, anyen tankou sa. 148 00:11:28,650 --> 00:11:38,030 Lè sa a, tèks - boom - ak Lè sa result.group-wi. 149 00:11:38,030 --> 00:11:41,820 Se konsa, ki se jis ki jan aplike debaz fonctionnalités isit la. 150 00:11:42,300 --> 00:11:55,110 Si nou te gen yon bag tèks ki - ki fou tèks - enkli di anpil bagay nan bar tounen 151 00:11:55,110 --> 00:12:01,180 ak strings andedan ak bagay sa yo ki ta ka gade tankou sekans chape, 152 00:12:01,180 --> 00:12:08,480 Lè sa a, nou pwobableman vle sèvi ak opinyon nan tèks anvan tout koreksyon a asire w ke yo aksepte. 153 00:12:08,480 --> 00:12:14,120 Men, ki jis sanble tankou sa. 154 00:12:14,120 --> 00:12:17,810 Se konsa, si nou te kap chèche chak nan yo nan gen nou pa ta dwe jwenn anyen. 155 00:12:19,070 --> 00:12:21,680 Men sa se ki jan ou ta aplike li; jis anvan fisèl la nan 156 00:12:21,680 --> 00:12:24,990 ekspresyon ki regilye ou mete r nan lèt yo. 157 00:12:26,150 --> 00:12:30,260 >> Oke, kidonk se pou nou kenbe prale. 158 00:12:30,260 --> 00:12:33,730 Tout dwa - se konsa se pou nou gade yon modèl koup repetitif isit la. 159 00:12:34,750 --> 00:12:39,150 Se konsa, yon sèl bagay ke ou vle fè se repete bagay sa yo 160 00:12:40,040 --> 00:12:42,480 kòm w ap chèche nan tèks. 161 00:12:42,480 --> 00:12:48,300 Se konsa, fè yon te swiv pa nenpòt ki kantite b - ou fè ab *. 162 00:12:48,630 --> 00:12:51,620 Lè sa a, gen yon seri de lòt règ tou. 163 00:12:51,620 --> 00:12:54,380 Epi ou ka gade tout moun sa yo moute; mwen pral jis kouri nan kèk nan la 164 00:12:54,380 --> 00:12:57,630 pi souvan itilize yo menm. 165 00:12:57,630 --> 00:13:03,920 Se konsa, AB + se yon ki te swiv pa nenpòt N pi gran pase 0 nan b. 166 00:13:04,510 --> 00:13:08,000 AB? se yon. ki te swiv pa 0 oswa 1 nan b 167 00:13:09,190 --> 00:13:18,580 ab {N} se yon ki te swiv pa N nan b, ak Lè sa a, sou sa. 168 00:13:18,580 --> 00:13:22,820 Si ou gen 2 nimewo nan aparèy òtopedik yo Curly w ap espesifye yon seri 169 00:13:23,300 --> 00:13:25,440 ki kapab pètèt matche. 170 00:13:26,390 --> 00:13:30,420 Se konsa, nou pral gade plis nan yon modèl koup repetitif nan yon minit. 171 00:13:31,960 --> 00:13:42,300 Se konsa, 2 bagay sa yo kenbe nan tèt ou lè w ap itilize sa yo modèl matche zouti isit la. 172 00:13:42,300 --> 00:13:52,120 Se konsa, di nou vle gade nan HM la nan, "Abraham Lincoln fè sandwich Kam yo." 173 00:13:52,120 --> 00:13:55,230 Se konsa, mwen chanje non Abraham Lincoln te genyen bay Abraram. 174 00:13:55,230 --> 00:14:00,290 Epi, koulye a nou ap chèche pou ki sa ki tounen pa fonksyon sa a rechèch la, 175 00:14:00,290 --> 00:14:03,270 ak li sèlman retounen Kam nan ka sa a. 176 00:14:03,620 --> 00:14:08,080 Men, li fè sa pou sa paske rechèch jis natirèlman pran keu la bò gòch ki pi. 177 00:14:08,080 --> 00:14:12,130 Apre sa, tout ekspresyon regilye sof si ou presize otreman pral fè sa. 178 00:14:12,830 --> 00:14:18,880 Si nou te vle jwenn tout gen yon fonksyon pou sa - jwenn tout. 179 00:14:18,880 --> 00:14:35,100 Se konsa, ki ta ka jis gade tankou tout re.findall = ('h.m', tèks) 180 00:14:35,100 --> 00:14:44,540 ak Lè sa a all.group (). 181 00:14:44,540 --> 00:14:51,040 Tout pwodui tou de Kam ak Kam yo: nan ka sa a tou de strings yo nan Abraram chak Kam yo. 182 00:14:51,610 --> 00:14:55,110 Se konsa, ki se yon lòt opsyon. 183 00:14:56,250 --> 00:15:06,940 >> Great. Bagay la lòt kenbe nan tèt ou se ke ekspresyon regilye pran pi gwo a entwitif. 184 00:15:06,940 --> 00:15:09,520 Se pou nou gade nan egzanp sa a. 185 00:15:10,200 --> 00:15:16,070 Nou te fè sa bò gòch rechèch pi isit la, ak Lè sa a mwen te eseye yon rechèch pi gwo 186 00:15:16,070 --> 00:15:18,800 lè l sèvi avèk operatè a zetwal Kleene. 187 00:15:18,800 --> 00:15:24,180 Se konsa, pou, "Abraham Lincoln fè sandwich Kam," epi mwen sèlman te tounen 188 00:15:24,180 --> 00:15:26,280 m kòm yon rezilta. 189 00:15:26,280 --> 00:15:31,670 Rezon ki fè la pou sa erè te ke mwen te ka yo te pran nenpòt ki kantite 190 00:15:31,670 --> 00:15:36,140 h paske mwen pa t 'presize anyen yo ale nan ant h ak m yo. 191 00:15:36,140 --> 00:15:42,010 Egzanp a sèlman gen ki te gen M - egzanp yo sèlman la ansanm ak m nan li 192 00:15:42,010 --> 00:15:46,220 ak nenpòt ki kantite a h te jis m nan fisèl. 193 00:15:46,490 --> 00:15:51,850 Lè sa a, Mwen te eseye l 'ankò, mwen te di, "Oke, se pou nou jwenn vrè gwoup la pi gwo isit la." 194 00:15:51,850 --> 00:15:59,670 Lè sa a, mwen te fè h. * M, se konsa ke jis retounen nenpòt ki kantite karaktè ant h ak m yo. 195 00:16:00,280 --> 00:16:02,950 Men, si ou se jis kòmanse deyò epi yo panse, "O, oke, byen sa a pral 196 00:16:02,950 --> 00:16:11,560 jwenn m 'Kam, "li aktyèlman pran tout bagay soti nan h la nan Abraham Lincoln 197 00:16:11,560 --> 00:16:13,690 tout wout la jiska fen pitit Kam yo. 198 00:16:14,040 --> 00:16:18,110 Li se visye, li wè h - tout tèks sa a lòt - m, 199 00:16:18,110 --> 00:16:21,280 e ke se sa li pran pous 200 00:16:22,060 --> 00:16:27,480 Sa a se yon patikilyèman flagran - sa a se yon karakteristik sa nou kapab tou 201 00:16:27,480 --> 00:16:30,670 presize pou li pa dwe visye lè l sèvi avèk fonksyon ak lòt. 202 00:16:31,480 --> 00:16:34,490 Men, sa a se yon bagay nou dwe kenbe nan tèt ou espesyalman 203 00:16:34,490 --> 00:16:38,720 lè yo kap nan tèks HTML, ki se yon rezon ki fè 204 00:16:38,720 --> 00:16:41,500 ekspresyon regilye yo difisil pou HTML. 205 00:16:42,460 --> 00:16:46,310 Paske si ou genyen yon HTML tag louvri, epi Lè sa a, anpil bagay nan mitan an 206 00:16:46,310 --> 00:16:49,820 ak Lè sa a kèk HTML lòt fèmen tag pita anpil nan pwogram nan, 207 00:16:49,820 --> 00:16:55,420 ou gen sèlman manje moute yon anpil nan Kòd HTML ou petèt pa erè. 208 00:16:56,200 --> 00:17:01,840 >> Tout dwa - se konsa plis espesyal karaktè, tankou plizyè lang lòt, 209 00:17:01,840 --> 00:17:04,780 nou chape anba lè l sèvi avèk koupe la. 210 00:17:04,780 --> 00:17:10,329 Se konsa, nou ka sèvi ak dot la ou presize nenpòt karaktè eksepte pou yon liy nouvo. 211 00:17:10,329 --> 00:17:14,550 Nou ka sèvi ak w la chape ou presize nenpòt karaktè alfabetik. 212 00:17:14,550 --> 00:17:20,329 Men, pa d chape analoji pou nenpòt ki nonb antye ki pè - nimerik karaktè. 213 00:17:20,630 --> 00:17:27,440 Nou ka presize - nou kapab itilize parantèz ou presize ekspresyon ki gen rapò. 214 00:17:27,440 --> 00:17:30,970 Se konsa, sa a ta aksepte yon b,, oswa c. 215 00:17:31,320 --> 00:17:37,000 Epi nou kapab tou presize oswa opsyon pou swa yon oswa b. 216 00:17:37,000 --> 00:17:41,110 Pou egzanp - si nou te kap chèche posiblite miltip 217 00:17:41,110 --> 00:17:44,940 nan parantèz nou te ka sèvi ak operatè a oswa kòm nan - 218 00:17:44,940 --> 00:17:52,480 se konsa se pou nou tounen nan egzanp sa a isit la. 219 00:17:53,000 --> 00:17:59,790 Epi, koulye a se pou nou pran - se pou nou tounen nan egzanp sa a isit la, ak Lè sa a, 220 00:17:59,790 --> 00:18:12,290 pran AE - Se konsa, sa a ta dwe retounen - Mwen devine sa a se toujou Abraram. 221 00:18:12,290 --> 00:18:17,410 Se konsa, sa a - si nou fè tout sa - gwo. 222 00:18:17,410 --> 00:18:22,700 Se konsa, kite nou mete tèks la isit la. 223 00:18:22,700 --> 00:18:34,690 "Abraram manje janbon pandan y ap aèm l '-. Pandan y ap aèm" Great. 224 00:18:44,090 --> 00:18:47,330 Tout. Great. Koulye a, nou jwenn Kam, Kam ak tout woulèt. 225 00:18:48,510 --> 00:18:59,370 Pandan ke aèm - pandan y ap imite chante l '- pandan y ap imite chante tout woulèt l'. Great. 226 00:19:00,350 --> 00:19:03,250 Menm bagay. 227 00:19:03,820 --> 00:19:09,180 Koulye a, tout retounen toujou jis Kam, Kam ak tout woulèt san yo pa davwa ke yo pran sou hum la oswa l 'la. 228 00:19:09,940 --> 00:19:22,600 Gran - Se konsa, sa si nou te vle fè yon gade nan swa sa - se konsa nou ta ka tou fè 229 00:19:23,510 --> 00:19:33,810 l 'oswa - nou pral tounen vin jwenn sa. 230 00:19:34,810 --> 00:19:45,760 Oke - se konsa - tout dwa - nan pozisyon ou ka tou itilize Lambda la oswa siy a an dola 231 00:19:45,760 --> 00:19:49,350 ou presize ke ou ap chèche pou yon bagay nan kòmansman an oswa nan fen yon kòd. 232 00:19:50,260 --> 00:19:52,260 Oswa nan kòmansman an oswa nan fen yon mo. 233 00:19:52,400 --> 00:19:54,470 Sa se yon fason yo sèvi ak sa. 234 00:19:55,630 --> 00:20:01,160 >> Oke - se konsa se pou nou jwe ak yon blòk yon ti kras pi gwo nan tèks. 235 00:20:03,950 --> 00:20:08,310 Se pou nou di ranje sa a isit la - deklarasyon sa a isit la. 236 00:20:08,310 --> 00:20:11,360 Pouvwa a nan ekspresyon regilye se yo ke yo ka presize modèl 237 00:20:11,360 --> 00:20:13,390 pa sèlman fiks karaktè. 238 00:20:14,900 --> 00:20:18,790 Se pou nou fè - se pou nou rele sa a blòk. 239 00:20:22,400 --> 00:20:27,110 Lè sa a, nou pral li nan tout sa pous 240 00:20:28,890 --> 00:20:50,820 Lè sa a, gen yon - se pou nou fè tout =; Se konsa, sa kèk bagay nou te ka fè rechèch nan isit la ki pwofitab? 241 00:20:50,820 --> 00:20:54,070 Nou te kapab gade pou zòrèy la ekspresyon. 242 00:20:55,050 --> 00:21:01,520 Pa trè enteresan. Kouman sou sa? Nou pwal wè kisa k ap rive. 243 00:21:03,710 --> 00:21:05,710 Mwen te bay li yon pwoblèm. 244 00:21:06,380 --> 00:21:10,750 Se konsa, nenpòt ki kantite bagay sa yo anvan re ak tout moun. 245 00:21:10,750 --> 00:21:15,630 Se konsa, ki ta dwe retounen tout bagay depi nan konmansman an jiska tout re petèt yon fwa koup. 246 00:21:18,800 --> 00:21:21,970 Lè sa a, isit la nou gen pouvwa a nan ekspresyon regilye se yo ke yo 247 00:21:21,970 --> 00:21:24,900 ka presize modèl pa sèlman karaktè isit la yo se. 248 00:21:24,900 --> 00:21:28,510 Se konsa, tout wout la jiska re final la, li te kòmanse avèk pi plis nan bò gòch e li te visye. 249 00:21:30,710 --> 00:21:32,710 Se pou nou wè - ki lòt bagay nou ka gade pou. 250 00:21:32,710 --> 00:21:39,860 Mwen devine yon sèl bagay si ou te enterese nan kap chèche pwonon yo li epi li, 251 00:21:39,860 --> 00:21:44,600 ou ta ka tcheke pou yo ke yo te egal a 0 oswa 1 252 00:21:44,600 --> 00:21:49,710 ak ekspresyon nan li, e ke sa se pwobableman pa pral retounen - 253 00:21:49,710 --> 00:21:58,020 oh, mwen devine li tounen li paske gen nou ap chèche a pouvwa a, jou sa a, yo isit la. 254 00:22:00,590 --> 00:22:06,270 Se pou nou eseye ki espesifye ke sa a gen vini nan kòmansman an nan yon bagay. 255 00:22:06,640 --> 00:22:09,530 Se pou nou wè si ke gout la. 256 00:22:09,530 --> 00:22:19,630 Se konsa, nou ka fè gen anpil grès, epi gen nou pa jwenn anyen paske li epi li 257 00:22:19,630 --> 00:22:22,870 pa rive nan fraz sa a. 258 00:22:24,960 --> 00:22:30,410 Great. Oke - se konsa tounen nan chat la isit la. 259 00:22:30,410 --> 00:22:35,720 Se konsa, konplèks modèl ki mal sèvo a. 260 00:22:35,720 --> 00:22:40,500 Se konsa, se pou sa nou itilize ekspresyon regilye pou fè pou evite pwoblèm sa yo. 261 00:22:40,820 --> 00:22:43,520 >> Se konsa, isit la gen kèk lòt mòd itil ou ka jwe otou ak. 262 00:22:43,520 --> 00:22:50,290 Nou te gade rechèch jodi a, men ou ka tou itilize matche ak, fann, findall, ak gwoup. 263 00:22:50,290 --> 00:22:53,970 Se konsa, lòt bagay fre ou kapab fè avèk ekspresyon regilye san konte jis 264 00:22:53,970 --> 00:22:58,870 kap chèche modèl ap pran yon modèl e kenbe tout alimèt yo - 265 00:22:58,870 --> 00:23:02,530 varyab li yo - ak Lè sa a lè l sèvi avèk moun ki nan kòd ou pita sou. 266 00:23:02,850 --> 00:23:05,980 Sa kapab byen itil. Lòt bagay ta ka konte. 267 00:23:05,980 --> 00:23:11,720 Se konsa, nou ka konte kantite ka nan yon modèl ekspresyon regilye, 268 00:23:11,720 --> 00:23:13,960 e ke se sa nou ka sèvi ak gwoup pou. 269 00:23:13,960 --> 00:23:17,550 Men, lòt mwayen kòm byen yo tou sa posib. 270 00:23:18,040 --> 00:23:22,980 Se konsa, mwen jis vle pale yon ti kras plis sou lòt fason ou ka itilize ekspresyon regilye. 271 00:23:22,980 --> 00:23:29,100 >> Se konsa, yon sèl aplikasyon ki pi avanse se nan matche mou. 272 00:23:29,100 --> 00:23:33,450 Se konsa, si w ap chèche pou yon tèks pou ekspresyon an, Julius Seza, 273 00:23:33,450 --> 00:23:37,740 epi ou wè swa Gayis Julius Seza tande kòz oswa Non Julius Seza tande kòz la nan lòt lang yo, 274 00:23:37,740 --> 00:23:44,400 Lè sa a, ou ta ka vle tou bay elèv yo kèk pwa valè sa yo. 275 00:23:44,400 --> 00:23:48,930 Men, si li se ase pre - si li kwaze yon papòt sèten - Lè sa a, ou vle 276 00:23:48,930 --> 00:23:50,860 pou kapab aksepte Julius Seza li ye. 277 00:23:50,860 --> 00:24:00,580 Se konsa, gen yon koup en diferan pou ki nan yon lang kèk lòt kòm byen. 278 00:24:02,580 --> 00:24:08,420 Men kèk lòt zouti, rjèks Pal - yon sou la men app ti kras sou entènèt 279 00:24:08,420 --> 00:24:12,190 tcheke si ekspresyon regilye ou yo konpoze kòrèkteman. 280 00:24:12,190 --> 00:24:18,500 Genyen tou zouti otonòm ke ou ka kouri soti nan Desktop ou 281 00:24:18,500 --> 00:24:22,100 tankou Ultra Pico, ak kòm byen ke liv manje jis. 282 00:24:22,100 --> 00:24:25,410 Se konsa, si w ap fè yon pwojè ki enplike nan yon tòn ekspresyon regilye 283 00:24:25,410 --> 00:24:29,810 sa a se pwobableman plas la ale deyò sijè ki abòde lan jodi a. 284 00:24:31,520 --> 00:24:35,770 Lè sa a, jis ba ou yon sans de ki jan komen li se 285 00:24:35,770 --> 00:24:44,090 gen grèp nan UNIX, pèrl gen bati-an, ak C gen pkr pou C. 286 00:24:44,090 --> 00:24:48,890 Lè sa a, tout bagay sa yo lòt lang yo menm tou yo gen pakè ekspresyon regilye 287 00:24:48,890 --> 00:24:52,020 ki ap fonksyone ak esansyèlman sentaks la menm nou te resevwa yon gou nan jounen jodi a. 288 00:24:52,020 --> 00:24:54,790 PHP, Java, Ruby, ak sou sa. 289 00:24:56,080 --> 00:24:58,980 >> Google Kòd Search se aktyèlman mansyone vo; li se youn nan la 290 00:24:58,980 --> 00:25:05,720 relativman kèk aplikasyon yo deyò ki pèmèt piblik la jwenn aksè nan 291 00:25:05,720 --> 00:25:07,800 baz done li yo lè l sèvi avèk ekspresyon regilye. 292 00:25:07,800 --> 00:25:12,920 Se konsa, si ou gade sou rechèch Google Kòd ou ka jwenn Kòd 293 00:25:12,920 --> 00:25:16,880 si w ap chèche pou yon egzanp sou kouman ta ka yon fonksyon ka itilize, 294 00:25:16,880 --> 00:25:21,610 ou ka sèvi ak yon ekspresyon regilye ke ou jwenn ke fonksyon te itilize nan tout kalite ka diferan. 295 00:25:21,610 --> 00:25:28,000 Ou te kapab gade pou fwrite, ak Lè sa a, ou ta ka gade pou drapo a nan ekri oswa li 296 00:25:28,000 --> 00:25:32,000 si ou te vle yon egzanp fwrite ki te itilize nan ka sa a. 297 00:25:33,530 --> 00:25:37,010 Se konsa, menm bagay la gen, ak isit la yo se kèk referans. 298 00:25:37,010 --> 00:25:40,990 Sa a pral disponib sou entènèt kòm byen, konsa pral anvwa si 299 00:25:40,990 --> 00:25:45,560 ou vle gade nan Piton, grèp, pèrl - ou jis vle jwenn kèk enspirasyon 300 00:25:45,560 --> 00:25:50,650 oswa si ou vle gade plis nan teyori a isit la gen kèk sote bon sou kote. 301 00:25:50,650 --> 00:25:53,870 Mèsi anpil. 302 00:25:58,470 --> 00:25:59,910 [CS50.TV]