1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Málstofa: Pattern Matching með Venjulegur Tjáning] 2 00:00:02,000 --> 00:00:04,000 [John University Mussman-Harvard] 3 00:00:04,000 --> 00:00:07,220 [Þetta er CS50.-CS50.TV] 4 00:00:07,780 --> 00:00:11,610 Allt í lagi. Jæja, velkomin allir. Þetta er CS50 2012. 5 00:00:11,780 --> 00:00:16,610 Mitt nafn er John, og ég mun vera að tala í dag um reglulegar segðir. 6 00:00:16,610 --> 00:00:22,530 Venjulegur tjáning er fyrst og fremst tæki, en einnig stundum notað 7 00:00:22,530 --> 00:00:28,650 í númerið virkan að raun passa mynstur og strengi. 8 00:00:28,650 --> 00:00:33,800 Svo hér er vefur grínisti frá xkcd. 9 00:00:34,440 --> 00:00:42,370 Í þessu grínisti er morð ráðgáta þar sem morðingi hefur 10 00:00:42,370 --> 00:00:47,860 fylgt einhver á fríi, og söguhetjur hafa til 11 00:00:47,860 --> 00:00:52,500 leitað 200 megabæti af tölvupósti leita að heimilisfangi. 12 00:00:52,500 --> 00:00:56,090 Og þeir eru að fara að gefa upp þegar einhver sem veit venjulegur tjáning - 13 00:00:56,090 --> 00:01:00,550 væntanlega ofurhetja - swoops niður og skrifar nokkur númer 14 00:01:00,550 --> 00:01:02,970 og leysa morð ráðgáta. 15 00:01:02,970 --> 00:01:07,370 Svo væntanlega að vilja vera eitthvað sem þú verður að hafa vald til að gera 16 00:01:07,370 --> 00:01:09,370 eftir þessa ráðstefnu. 17 00:01:09,370 --> 00:01:12,250 Við erum bara að fara að gefa nákvæmt kynningu á tungumáli 18 00:01:12,250 --> 00:01:16,770 og gefa þér nóg bolmagn til að fara eftir fleiri úrræði á eigin spýtur. 19 00:01:17,680 --> 00:01:21,700 >> Svo venjulegur tjáning líta í grundvallaratriðum eins og þetta. 20 00:01:22,930 --> 00:01:25,550 Þetta er venjulegur tjáning í Ruby. 21 00:01:25,550 --> 00:01:29,280 Það er ekki hræðilega öðruvísi á milli tungumála. 22 00:01:29,690 --> 00:01:37,630 Við höfum bara um rista að byrja og merkja reglulega segð í Ruby. 23 00:01:37,630 --> 00:01:42,880 Og þetta er reglulega segð til að leita í netfang mynstur. 24 00:01:42,880 --> 00:01:49,160 Svo við sjáum í fyrsta bita útlit fyrir tölu staf. 25 00:01:50,500 --> 00:01:54,880 Það er vegna þess að netföng oft að byrja með bókstaf. 26 00:01:55,460 --> 00:01:59,330 Og þá hvaða sértákn á eftir @ tákni. 27 00:01:59,330 --> 00:02:03,260 Og þá það sama fyrir ríki nafn. 28 00:02:03,260 --> 00:02:10,030 Og þá á milli 2 og 4 stafir að leita að. Com,. Net, og svo framvegis. 29 00:02:10,850 --> 00:02:13,200 Svo er að annað dæmi um reglulega segð. 30 00:02:13,200 --> 00:02:17,270 Svo venjulegur tjáning eru samskiptareglur til að finna patters í texta. 31 00:02:17,270 --> 00:02:21,130 Þeir gera samanburð, vali, og skipti. 32 00:02:21,690 --> 00:02:27,970 Svo þriðja dæmi er að finna öllum símanúmerunum sem endar á 54 í möppu. 33 00:02:27,970 --> 00:02:34,360 Svo áður en David rifnar upp CS50 skrá við gætum leitað að 34 00:02:34,360 --> 00:02:40,450 mynstur þar sem við höfum sviga þá 3 tölur enda þá sviga, 35 00:02:40,450 --> 00:02:44,070 3 fleiri tölur, bandstrik, 2 tölur, og þá 54.. 36 00:02:44,070 --> 00:02:48,310 Og það væri í raun hvernig við komum upp með reglulegu segð til að leita að því. 37 00:02:49,150 --> 00:02:52,960 >> Þannig að það eru - við höfum gert nokkra hluti í CS50 sem eru svolítið eins og 38 00:02:52,960 --> 00:02:59,740 venjulegur tjáning, svo - til dæmis - í dictionary.C skrá 39 00:02:59,740 --> 00:03:04,720 fyrir villuleit Heimadæmi þú gætir hafa notað fscanf 40 00:03:04,720 --> 00:03:07,930 að lesa í orði úr orðabókinni. 41 00:03:07,930 --> 00:03:16,240 Og þú getur séð hlutfall 45s er að leita að band 45 stafi. 42 00:03:16,240 --> 00:03:20,020 Svo er það nokkuð eins og rudimentary reglulegri segð. 43 00:03:21,150 --> 00:03:26,060 Og þú getur haft hvaða 45 persónur sem passa frumvarpið þar 44 00:03:26,060 --> 00:03:28,080 og velja þá upp. 45 00:03:28,080 --> 00:03:33,480 Og þá annað dæmi í nýjustu vefur forritun vandamál 46 00:03:33,480 --> 00:03:40,760 setja í distro kóða fyrir PHP við gerum raunverulega hafa a einfaldur reglulega segð. 47 00:03:40,760 --> 00:03:46,790 Og þetta er bara einfaldlega að leita til að athuga hvort vefsíðan sem er samþykkt í 48 00:03:46,790 --> 00:03:51,940 passar annaðhvort innskráningu eða Útskrá skrá. PHP. 49 00:03:52,220 --> 00:03:57,910 Og síðan aftur rétt eða rangt byggist á því reglulega segð samsvörun. 50 00:03:59,400 --> 00:04:01,740 >> Svo þegar þú notar reglulega segð? 51 00:04:01,740 --> 00:04:04,820 Hvers vegna ert þú hér í dag? 52 00:04:05,330 --> 00:04:08,480 Svo þú vilt ekki að nota reglulega segð þegar það er eitthvað sem 53 00:04:08,480 --> 00:04:11,640 hjartarskinn the starf fyrir þig jafnvel fleiri auðveldlega. 54 00:04:11,640 --> 00:04:15,510 Svo XML og HTML eru reyndar mjög erfiður 55 00:04:15,510 --> 00:04:18,480 að skrifa reglulegar segðir eins og við munum sjá í smá. 56 00:04:19,110 --> 00:04:23,280 Þannig að það eru hollur parsers fyrir þessum tungumálum. 57 00:04:24,170 --> 00:04:30,060 Þú þarft einnig að vera í lagi með viðskipti offs og nákvæmni oft. 58 00:04:30,060 --> 00:04:36,220 Ef þú ert að reyna - svo við sáum reglulega segð um netfang, 59 00:04:37,370 --> 00:04:42,590 en segjum að þú vildir ákveðna netfang og smám saman 60 00:04:42,590 --> 00:04:48,570 Regluleg segð gæti orðið flóknara og það varð nákvæmari. 61 00:04:49,580 --> 00:04:52,260 Svo það væri ein viðskipti burt. 62 00:04:52,260 --> 00:04:55,330 Þú þarft að vera viss um að þú ert allt í lagi að gera við reglulega segð. 63 00:04:55,330 --> 00:04:57,920 Ef þú veist nákvæmlega hvað þú ert að leita að það gæti gert meira vit 64 00:04:57,920 --> 00:05:02,070 að setja í tíma og skrifa skilvirkari flokka. 65 00:05:02,070 --> 00:05:06,980 Og að lokum er það söguleg mál með nemi 66 00:05:06,980 --> 00:05:08,940 tjáning og tungumál. 67 00:05:08,940 --> 00:05:12,960 Reglulegar segðir eru í raun miklu öflugri en 68 00:05:12,960 --> 00:05:16,450 venjulegur tjáning á að segja í formlegri skilningi. 69 00:05:17,130 --> 00:05:20,150 >> Svo ég vil ekki að fara of langt inn í formlegu kenningunni 70 00:05:20,150 --> 00:05:24,000 en flestir tungumál sem við kóða í raun eru ekki reglulega. 71 00:05:24,000 --> 00:05:29,110 Og þetta er ástæðan venjulegur tjáning stundum eru ekki talin allt sem örugg. 72 00:05:29,670 --> 00:05:33,150 Svo í rauninni er Chomsky stigveldi fyrir tungumálum, 73 00:05:33,150 --> 00:05:38,400 og venjulegur tjáning eru að byggja upp með stéttarfélags, samtenging, 74 00:05:38,400 --> 00:05:41,810 og á Kleene stjörnu aðgerð sem við munum sjá í nokkrar mínútur. 75 00:05:43,130 --> 00:05:48,860 Ef þú hefur áhuga í orði það er alveg mikið að fara á það undir hetta. 76 00:05:50,360 --> 00:05:55,880 >> Svo stutta sögu - bara fyrir samhengi hér - regluleg setur kom upp 77 00:05:55,880 --> 00:05:59,580 í 1950, og þá höfðum við einföld ritstjórar sem 78 00:05:59,580 --> 00:06:03,300 felld venjulegur tjáning - bara leita fyrir strengi. 79 00:06:03,570 --> 00:06:09,110 Grep - sem er a stjórn lína tól - var einn af fyrstu 80 00:06:09,110 --> 00:06:14,160 mjög vinsæl tól sem tekin venjulegur tjáning í 1960. 81 00:06:14,160 --> 00:06:20,560 Í '80s, var Perl built - er forritunarmál sem 82 00:06:20,560 --> 00:06:24,110 fella reglulegar segðir mjög áberandi. 83 00:06:24,550 --> 00:06:30,130 Og svo nýlega höfum við fengið Perl samhæft reglulega segð 84 00:06:30,130 --> 00:06:35,870 samskiptareglur í grundvallaratriðum á öðrum tungumálum sem nota mikið af sömu setningafræði. 85 00:06:36,630 --> 00:06:39,840 Auðvitað mikilvægasti atburður var árið 2008 86 00:06:39,840 --> 00:06:43,040 þar var fyrsta National Venjulegur Tjáning Day, 87 00:06:43,040 --> 00:06:47,350 sem ég tel er 1 júní ef þú vilt að fagna því. 88 00:06:48,430 --> 00:06:50,840 >> Aftur, bara svolítið meira kenning hér. 89 00:06:52,180 --> 00:06:55,320 Þannig að það eru nokkrar mismunandi leiðir til að byggja reglulegar segðir. 90 00:06:55,950 --> 00:07:02,050 Ein einföld leið er að byggja upp tjáningu sem þú ert að fara að 91 00:07:02,050 --> 00:07:07,500 hlaupa á band túlka - í grundvallaratriðum að byggja lítið Mini-forrit sem 92 00:07:07,500 --> 00:07:11,870 að greina stykki af streng og sjá, "Ó, er þetta passa reglulega segð eða ekki?" 93 00:07:12,250 --> 00:07:14,250 Og þá hlaupa það. 94 00:07:14,250 --> 00:07:17,300 Svo ef þú ert með mjög lítið reglulega segð, þetta er líklega 95 00:07:17,300 --> 00:07:19,380 skilvirkasta leiðin til að gera það. 96 00:07:20,090 --> 00:07:25,420 Og þá ef þér - annar valkostur er að halda endurgera 97 00:07:25,420 --> 00:07:30,260 tjáningu eins og þú fara, og það er líkja möguleiki. 98 00:07:30,440 --> 00:07:37,690 Og þessar fyrstu tilraunir með reglulegu reiknirit tjáningu voru 99 00:07:37,690 --> 00:07:44,330 tiltölulega einföld og tiltölulega hratt, en ekki hafa a einhver fjöldi af sveigjanleika. 100 00:07:44,330 --> 00:07:47,500 Svo til að gera jafnvel sumir af þeim hlutum sem við erum að fara að horfa á 101 00:07:47,500 --> 00:07:52,860 í dag höfum við þurft að gera flóknari reglulega segð 102 00:07:52,860 --> 00:07:56,650 gerð sem eru hugsanlega miklu hægar, svo það er eitthvað til að hafa í huga 103 00:07:57,510 --> 00:08:02,920 There 'einnig a venjulegur tjáning afneitun ýmsum árás 104 00:08:02,920 --> 00:08:08,330 að nýta sér möguleika fyrir þessar nýrri gerð af 105 00:08:08,330 --> 00:08:10,930 venjulegur tjáning til að verða mjög flókið. 106 00:08:11,570 --> 00:08:15,650 Og á mjög svipaðan hátt að við sáum í biðminni flæða árásum, 107 00:08:15,650 --> 00:08:21,610 þú þarft árásir sem vinna með því að gera endurkvæma lykkjur að 108 00:08:21,610 --> 00:08:24,400 Farið yfir getu minni. 109 00:08:24,780 --> 00:08:29,540 Og við á leiðinni Regexen er eitt af opinberum fleirtölu reglulega segð 110 00:08:29,540 --> 00:08:32,890 á hliðstæðan hátt naut í engilsaxneskum. 111 00:08:33,500 --> 00:08:40,169 >> Jæja, svo Python Library mörg ykkar hér í persónu hafa Macs, 112 00:08:40,169 --> 00:08:43,860 svo þú getur raunverulega rífa þetta upp á þinn skjár. 113 00:08:43,860 --> 00:08:47,480 Reglulegar segðir eru byggð inn í Python. 114 00:08:48,070 --> 00:08:53,020 Og svo Python er preloaded á Macs og einnig á netinu á þennan tengil. 115 00:08:53,770 --> 00:08:57,350 Svo ef þú ert að horfa á þú getur hvílt og tryggja þú hafa Python 116 00:08:58,080 --> 00:09:00,170 eins og við leika í kring hér. 117 00:09:00,780 --> 00:09:06,420 Það er handbók á netinu, þannig að ef þú slærð bara Python í tölvuna þína 118 00:09:06,420 --> 00:09:10,500 þú munt sjá að útgáfa kemur upp í flugstöðinni. 119 00:09:11,070 --> 00:09:17,720 Svo ég enda tengil á handbók fyrir útgáfu 2 af Python auk Cheat Sheet. 120 00:09:17,720 --> 00:09:23,100 Það er útgáfa 3 af Python, en Mac þinn styður ekki endilega 121 00:09:23,100 --> 00:09:25,130 koma með það preloaded. 122 00:09:25,130 --> 00:09:27,360 Svo ekki hræðilega öðruvísi. 123 00:09:27,360 --> 00:09:33,270 Jæja, svo sumir grunnatriði nota reglulegar segðir í Python. 124 00:09:34,080 --> 00:09:42,650 >> Svo hér er ég nota mjög einfalt tjáningu, svo ég gerði Python innflutningur tilvísun 125 00:09:43,750 --> 00:09:47,070 og þá tók niðurstöðu re.search. 126 00:09:47,070 --> 00:09:49,910 Og leit tekur 2 rök. 127 00:09:49,910 --> 00:09:56,040 Í fyrsta lagi er venjulegur tjáning, og annað er textinn 128 00:09:56,040 --> 00:09:58,290 eða band þú vilt að greina. 129 00:09:58,290 --> 00:10:01,210 Og svo ég prenta út result.group. 130 00:10:01,580 --> 00:10:05,860 Svo að þetta eru 2 helstu aðgerðir sem við ætlum að sjá í dag 131 00:10:06,790 --> 00:10:10,170 í að læra um reglulegar segðir. 132 00:10:10,170 --> 00:10:12,880 Svo bara að brjóta niður þetta reglulega segð hér 133 00:10:12,880 --> 00:10:21,770 klst og þá \ w og síðan m svo \ w tekur bara hvaða bókstaf í there. 134 00:10:21,850 --> 00:10:26,820 Svo hér erum við að leita að "H" og þá annar bókstaf 135 00:10:26,820 --> 00:10:30,060 og þá m, svo hér sem myndi passa skinku 136 00:10:30,060 --> 00:10:34,480 í, "Abraham Lincoln og skinku samlokur." 137 00:10:35,040 --> 00:10:37,150 Þetta er afleiðing af þeim hópi. 138 00:10:37,680 --> 00:10:43,130 Annar hlutur sem við getum gert er að nota áður en strengi okkar texta í Python. 139 00:10:43,130 --> 00:10:46,220 Svo ég held ég mun fara á undan og draga það upp hér. 140 00:10:46,220 --> 00:10:49,210 Python innflutningur aftur. 141 00:10:50,070 --> 00:10:54,000 Og ef ég væri að gera það sama - við skulum segja textinn er, 142 00:10:55,390 --> 00:11:00,800 "Abraham," skulum súmma inn - svona. 143 00:11:01,610 --> 00:11:06,430 Texti er, "Abraham étur skinku." 144 00:11:07,460 --> 00:11:15,260 Jæja, og þá leiða = re.search. 145 00:11:16,260 --> 00:11:22,020 Og þá tjáningu okkar getur verið h, og þá get ég gert punktur m. 146 00:11:22,020 --> 00:11:26,280 Svo tekur punktur bara hvaða staf sem er ekki ný lína þar á meðal tölur, 147 00:11:26,280 --> 00:11:28,650 hlutfall merki, eitthvað svoleiðis. 148 00:11:28,650 --> 00:11:38,030 Og þá texta - Boom - og þá result.group--já. 149 00:11:38,030 --> 00:11:41,820 Svo er það bara hvernig á að framkvæma undirstöðu-virkni hér. 150 00:11:42,300 --> 00:11:55,110 Ef við hefðum texta hringur sem - að brjálaður texta - Innifalið segja fullt af bak rista 151 00:11:55,110 --> 00:12:01,180 og strengir inni og það sem gæti litið svona röð flýja, 152 00:12:01,180 --> 00:12:08,480 þá viljum við sennilega að nota hrátt ritun til að tryggja að er samþykkt. 153 00:12:08,480 --> 00:12:14,120 Og það bara lítur út eins og þessi. 154 00:12:14,120 --> 00:12:17,810 Þannig að ef við vorum að leita fyrir hvert þeirra þar við ættum ekki að finna neitt. 155 00:12:19,070 --> 00:12:21,680 En það er hvernig þú myndir framkvæma það, rétt áður en strengur 156 00:12:21,680 --> 00:12:24,990 reglulega segð þú setur stafinn r. 157 00:12:26,150 --> 00:12:30,260 >> Jæja, svo við skulum halda áfram. 158 00:12:30,260 --> 00:12:33,730 Allt í lagi - svo við skulum líta á nokkrar endurteknar mynstur hér. 159 00:12:34,750 --> 00:12:39,150 Svo er einn hlutur sem þú vilt gera endurtaka hlutina 160 00:12:40,040 --> 00:12:42,480 eins og þú ert að leita í gegnum texta. 161 00:12:42,480 --> 00:12:48,300 Svo að gera með einhverjum af b - þú ab *. 162 00:12:48,630 --> 00:12:51,620 Og svo eru nokkrar aðrar reglur líka. 163 00:12:51,620 --> 00:12:54,380 Og þú getur að líta öll þessi upp, ég bara hlaupa í gegnum sumir af the 164 00:12:54,380 --> 00:12:57,630 algengastar sjálfur. 165 00:12:57,630 --> 00:13:03,920 Svo er AB + A eftir einhverjum N meiri en 0 af b. 166 00:13:04,510 --> 00:13:08,000 AB? er fylgt eftir með 0 eða 1 af b. 167 00:13:09,190 --> 00:13:18,580 AB {N} er fylgt eftir með N frá b, og þá svo framvegis. 168 00:13:18,580 --> 00:13:22,820 Ef þú átt 2 tölur í hrokkið axlabönd þú ert að tilgreina svið 169 00:13:23,300 --> 00:13:25,440 sem getur hugsanlega passa. 170 00:13:26,390 --> 00:13:30,420 Þannig að við munum líta betur á núna endurteknar mynstur í eina mínútu. 171 00:13:31,960 --> 00:13:42,300 Svo 2 hlutir til að hafa í huga þegar þú notar þessi mynstur samsvörun tæki hér. 172 00:13:42,300 --> 00:13:52,120 Svo segja að við viljum að líta á HM á, "Abraham Lincoln gerir skinku samlokur." 173 00:13:52,120 --> 00:13:55,230 Svo ég breytti nafni Abraham Lincoln til Abrahams. 174 00:13:55,230 --> 00:14:00,290 Og nú erum við að leita að því sem er skilað með þessari leit virka, 175 00:14:00,290 --> 00:14:03,270 og það skilar aðeins skinku í þessu tilfelli. 176 00:14:03,620 --> 00:14:08,080 Og það þýðir að vegna leita bara tekur náttúrulega vinstri mest biðröð. 177 00:14:08,080 --> 00:14:12,130 Og allir venjulegur tjáning nema þú tilgreinir annað mun gera það. 178 00:14:12,830 --> 00:14:18,880 Ef við vildum að finna allt sem er fall fyrir það - að finna allt. 179 00:14:18,880 --> 00:14:35,100 Svo sem gæti bara líta út eins og allar = re.findall ('h.m', texti) 180 00:14:35,100 --> 00:14:44,540 og þá all.group (). 181 00:14:44,540 --> 00:14:51,040 Allt framleiðir bæði skinku og skinku, í þessu tilfelli bæði strengi í Abraham hverju skinku. 182 00:14:51,610 --> 00:14:55,110 Svo er það annar valkostur. 183 00:14:56,250 --> 00:15:06,940 >> Great. The annar hlutur til viðurværi í hugur er að venjulegur tjáning Taktu stærsta innsæi. 184 00:15:06,940 --> 00:15:09,520 Leyfðu okkur að líta á þetta dæmi. 185 00:15:10,200 --> 00:15:16,070 Við gerðum það skilið mest leita hér, og þá ég reyndi stærri leit 186 00:15:16,070 --> 00:15:18,800 nota Kleene stjörnu rekstraraðila. 187 00:15:18,800 --> 00:15:24,180 Svo fyrir, "Abraham Lincoln gerir skinku samlokur," og ég fékk bara til baka 188 00:15:24,180 --> 00:15:26,280 m í kjölfarið. 189 00:15:26,280 --> 00:15:31,670 Ástæðan fyrir þessi mistök var að ég hefði getað tekið hvaða fjölda 190 00:15:31,670 --> 00:15:36,140 H er vegna þess að ég gerði ekki tilgreina neitt til að fara á milli h og m. 191 00:15:36,140 --> 00:15:42,010 Eina dæmið þar sem hafði m - eina dæmi þar með m í það 192 00:15:42,010 --> 00:15:46,220 og allir tala um á H voru bara band m. 193 00:15:46,490 --> 00:15:51,850 Og ég reyndi það aftur, ég sagði: "Jæja, við skulum fá raunverulegt stærsta hópinn hér." 194 00:15:51,850 --> 00:15:59,670 Og svo ég gerði h. * M, þannig að bara skilar allir tala um stafir milli h og m. 195 00:16:00,280 --> 00:16:02,950 Og ef þú ert réttlátur byrjun út og hugsa, "Ó, allt í lagi, vel þetta mun 196 00:16:02,950 --> 00:16:11,560 fá mér skinku, "það tekur í raun allt frá h í Abraham Lincoln 197 00:16:11,560 --> 00:16:13,690 alla leið upp til loka skinku. 198 00:16:14,040 --> 00:16:18,110 Það er gráðugur, það sér h - allt þetta annar texti - m, 199 00:16:18,110 --> 00:16:21,280 og það er það sem það tekur inn 200 00:16:22,060 --> 00:16:27,480 Þetta er sérstaklega egregious - þetta er eiginleiki sem við getum einnig 201 00:16:27,480 --> 00:16:30,670 tilgreina fyrir það ekki vera gráðugur að nota aðra valkosti. 202 00:16:31,480 --> 00:16:34,490 En þetta er eitthvað sem við verðum að hafa í huga sérstaklega 203 00:16:34,490 --> 00:16:38,720 þegar þú horfir á HTML texta, sem er ein ástæða þess að 204 00:16:38,720 --> 00:16:41,500 venjulegur tjáning er erfitt fyrir HTML. 205 00:16:42,460 --> 00:16:46,310 Vegna þess að ef þú ert með HTML opinn tag og síðan fullt af dóti í miðjunni 206 00:16:46,310 --> 00:16:49,820 og þá nokkrar aðrar HTML lokað tag mun síðar í áætluninni, 207 00:16:49,820 --> 00:16:55,420 þú hefur bara borðað upp a einhver fjöldi af HTML kóðann þinn hugsanlega fyrir mistök. 208 00:16:56,200 --> 00:17:01,840 >> Allt í lagi - svo fleiri sértákn, eins og mörg önnur tungumál, 209 00:17:01,840 --> 00:17:04,780 við að flýja með því að nota skástrik. 210 00:17:04,780 --> 00:17:10,329 Svo við getum notað punktur að tilgreina hvaða staf nema fyrir nýja línu. 211 00:17:10,329 --> 00:17:14,550 Við getum notað flýja w að tilgreina hvaða bókstaf. 212 00:17:14,550 --> 00:17:20,329 Og á hliðstæðan flýja D fyrir hvaða heiltala - tölulegar staf. 213 00:17:20,630 --> 00:17:27,440 Við getum skilgreint - við getum notað sviga tilgreina viðkomandi tjáning. 214 00:17:27,440 --> 00:17:30,970 Þannig að þetta myndi taka A, B, eða C. 215 00:17:31,320 --> 00:17:37,000 Og við getum einnig tilgreina eða valkosti fyrir annaðhvort a eða b. 216 00:17:37,000 --> 00:17:41,110 Til dæmis - ef við vorum að leita að mörgum möguleikum 217 00:17:41,110 --> 00:17:44,940 í sviga við gætum notað eða rekstraraðila sem í - 218 00:17:44,940 --> 00:17:52,480 svo við skulum fara aftur til þessa dæmis hér. 219 00:17:53,000 --> 00:17:59,790 Og nú skulum við taka - við skulum fara aftur til þetta dæmi hér, og þá 220 00:17:59,790 --> 00:18:12,290 taka AE - þannig að þetta ætti að fara aftur - ég held að þetta sé enn Abraham. 221 00:18:12,290 --> 00:18:17,410 Svo þetta - ef við gerum allt - frábær. 222 00:18:17,410 --> 00:18:22,700 Svo skulum uppfæra texta hér. 223 00:18:22,700 --> 00:18:34,690 "Abraham étur skinku en humm hans -. Meðan Hemming" Great. 224 00:18:44,090 --> 00:18:47,330 Allt. Great. Nú erum við að fá skinku, skinka, og faldi. 225 00:18:48,510 --> 00:18:59,370 Þó Hemming - en humming honum - en humming að faldi hann. Great. 226 00:19:00,350 --> 00:19:03,250 Sami hlutur. 227 00:19:03,820 --> 00:19:09,180 Nú skilar allt enn bara skinka, skinka, og faldi án tína upp á suð eða honum. 228 00:19:09,940 --> 00:19:22,600 Great - svo hvað ef við vildum að líta á hvort það - svo við gætum líka gert 229 00:19:23,510 --> 00:19:33,810 hann eða - við munum koma aftur til það. 230 00:19:34,810 --> 00:19:45,760 Jæja - svo - allt í lagi - í stöðu sem þú getur líka notað Caret eða dollaramerki 231 00:19:45,760 --> 00:19:49,350 að tilgreina að þú ert að leita að einhverju í upphafi eða við lok streng. 232 00:19:50,260 --> 00:19:52,260 Eða byrja eða enda orð. 233 00:19:52,400 --> 00:19:54,470 Það er ein leið til að nota það. 234 00:19:55,630 --> 00:20:01,160 >> Jæja - svo við skulum leika í kring með örlítið stærri blokk af texta. 235 00:20:03,950 --> 00:20:08,310 Leyfðu okkur að segja þessari röð hér - þessa yfirlýsingu hér. 236 00:20:08,310 --> 00:20:11,360 The máttur af reglulegri segð er að þeir geta tilgreina mynstur 237 00:20:11,360 --> 00:20:13,390 ekki bara fastur stafi. 238 00:20:14,900 --> 00:20:18,790 Leyfðu okkur að gera - við skulum kalla þessa blokk. 239 00:20:22,400 --> 00:20:27,110 Þá munum við lesa öll þessi inn 240 00:20:28,890 --> 00:20:50,820 Og þá hafa - við skulum gera allt =; svo það eru nokkur atriði sem við gætum leita hér hagnaði? 241 00:20:50,820 --> 00:20:54,070 Við gætum litið á tjáningu eyra. 242 00:20:55,050 --> 00:21:01,520 Ekki mjög áhugavert. Hvað um það? Við munum sjá hvað gerist. 243 00:21:03,710 --> 00:21:05,710 Ég gaf það vandamál. 244 00:21:06,380 --> 00:21:10,750 Svo allir tala af hlutur áður aftur og allt. 245 00:21:10,750 --> 00:21:15,630 Svo sem ætti að skila allt frá upphafi upp á allar aftur kannski í nokkur skipti. 246 00:21:18,800 --> 00:21:21,970 Og svo hér höfum við vald venjulegur tjáning er að þeir 247 00:21:21,970 --> 00:21:24,900 hægt að tilgreina mynstur ekki bara stafir eru hér. 248 00:21:24,900 --> 00:21:28,510 Svo alla leið til endanlegs aftur, byrjaði með vinstri mest og var gráðugur. 249 00:21:30,710 --> 00:21:32,710 Látum okkur sjá - hvað annað getum við leita að. 250 00:21:32,710 --> 00:21:39,860 Ég giska eitt ef þú varst áhuga á að leita að fornöfn hún og hann, 251 00:21:39,860 --> 00:21:44,600 þú gætir athuga s er jafnt 0 eða 1 252 00:21:44,600 --> 00:21:49,710 og tjáningu hann, og það er líklega ekki að fara að fara aftur - 253 00:21:49,710 --> 00:21:58,020 ó, held ég að það skilaði hann því það sem við erum að horfa á vald, þessi dagur, hér eru. 254 00:22:00,590 --> 00:22:06,270 Leyfðu okkur að reyna að skilgreina að þetta hefur að koma í upphafi eitthvað. 255 00:22:06,640 --> 00:22:09,530 Látum okkur sjá ef það lækkar burt. 256 00:22:09,530 --> 00:22:19,630 Svo við getum gert fitu, og þar sem við fæ ekki neitt vegna þess að hún og hann 257 00:22:19,630 --> 00:22:22,870 gera sér stað ekki í þessari setningu. 258 00:22:24,960 --> 00:22:30,410 Great. Jæja - svo aftur til the köttur hér. 259 00:22:30,410 --> 00:22:35,720 Svo flókin mynstur er að meiða heilann. 260 00:22:35,720 --> 00:22:40,500 Svo er að hvers vegna við notum reglulegar segðir til að forðast þessi mál. 261 00:22:40,820 --> 00:22:43,520 >> Svo hér eru nokkrar aðrar gagnlegar stillingar sem þú getur spilað í kring með. 262 00:22:43,520 --> 00:22:50,290 Við leit á leit í dag, en þú getur líka notað jafningi, Split, findall og hópa. 263 00:22:50,290 --> 00:22:53,970 Svo annar kaldur hlutur sem þú getur gert með reglulegum segðum auki bara 264 00:22:53,970 --> 00:22:58,870 leita að mynstri er að taka upp mynstur og halda alla leiki - 265 00:22:58,870 --> 00:23:02,530 breytur hennar - og þá með þeim í kóðanum þínum síðar. 266 00:23:02,850 --> 00:23:05,980 Það getur verið mjög gagnlegt. Önnur atriði mætti ​​telja. 267 00:23:05,980 --> 00:23:11,720 Svo við getum treyst fjölda dæmi af reglulega segð mynstur, 268 00:23:11,720 --> 00:23:13,960 og það er það sem við getum notað hópa fyrir. 269 00:23:13,960 --> 00:23:17,550 Og aðrar tegundir eins vel eru einnig mögulegt. 270 00:23:18,040 --> 00:23:22,980 Svo ég vil bara að tala svolítið meira um aðrar leiðir sem þú getur notað reglulegar segðir. 271 00:23:22,980 --> 00:23:29,100 >> Svo er eitt háþróaður umsókn í loðnu samsvörun. 272 00:23:29,100 --> 00:23:33,450 Svo ef þú ert að leita að texta á tjáningu, Julius Caesar, 273 00:23:33,450 --> 00:23:37,740 og þú sérð annaðhvort Gaius Julius Caesar eða nafn Júlíus Sesar í öðrum tungumálum, 274 00:23:37,740 --> 00:23:44,400 þá þú might einnig vilja til að úthluta sumir þyngd þeim gildum. 275 00:23:44,400 --> 00:23:48,930 Og ef það er nógu nálægt - ef það fer ákveðinn þröskuld - þá þú vilt 276 00:23:48,930 --> 00:23:50,860 að vera fær um að taka Julius Caesar. 277 00:23:50,860 --> 00:24:00,580 Þannig að það eru nokkrar mismunandi útfærslur fyrir að í nokkrum öðrum tungumálum eins og heilbrigður. 278 00:24:02,580 --> 00:24:08,420 Hér eru nokkrar aðrar verkfæri, Ríkisstjóratíð Pal - a handlaginn lítill app netinu til 279 00:24:08,420 --> 00:24:12,190 athuga hvort venjulegur tjáning eru skipuð rétt. 280 00:24:12,190 --> 00:24:18,500 Það eru einnig sjálfstæða tól sem þú getur keyrt á skjáborðinu þínu 281 00:24:18,500 --> 00:24:22,100 eins Ultra Pico, og auk réttlátur Matreiðslubækur. 282 00:24:22,100 --> 00:24:25,410 Svo ef þú ert að gera verkefni sem felur í sér tonn af reglulegar segðir 283 00:24:25,410 --> 00:24:29,810 þetta er líklega staðurinn til að fara utan gildissviðs dag. 284 00:24:31,520 --> 00:24:35,770 Og þá bara til að gefa þér tilfinningu um hversu algengt er 285 00:24:35,770 --> 00:24:44,090 það er grep í Unix, Perl hefur innbyggður-í, og C er PCRE fyrir C. 286 00:24:44,090 --> 00:24:48,890 Og svo öll þessi önnur tungumál hafa einnig reglulega pakka tjáningu 287 00:24:48,890 --> 00:24:52,020 sem starfa með aðalatriðum á sama setningafræði Við fengum bragð af í dag. 288 00:24:52,020 --> 00:24:54,790 PHP, Java, Ruby, og svo framvegis. 289 00:24:56,080 --> 00:24:58,980 >> Google Code Leit er í raun virði að minnast, það er eitt af 290 00:24:58,980 --> 00:25:05,720 tiltölulega fáir forrit þarna úti sem leyfir almenningi aðgang 291 00:25:05,720 --> 00:25:07,800 gagnagrunn þess að nota reglulegar segðir. 292 00:25:07,800 --> 00:25:12,920 Svo ef þú horfir á Google Code Leita þú getur fundið kóðann 293 00:25:12,920 --> 00:25:16,880 ef þú ert að leita að dæmi um hvernig fall gæti verið notað, 294 00:25:16,880 --> 00:25:21,610 þú getur notað reglulega segð til að komast að því að virka sem notuð eru í alls konar mismunandi tilvikum. 295 00:25:21,610 --> 00:25:28,000 Þú getur litið á fwrite, og þá gætirðu leita fána skrifa eða lesa 296 00:25:28,000 --> 00:25:32,000 ef þú vildir dæmi um fwrite verið notað í því tilfelli. 297 00:25:33,530 --> 00:25:37,010 Svo það sama þar, og hér eru nokkrar tilvísanir. 298 00:25:37,010 --> 00:25:40,990 Þetta verður í boði á netinu eins og heilbrigður, svo fara fram ef 299 00:25:40,990 --> 00:25:45,560 þú vilt líta á Python, grep, Perl - þú vilt bara að fá smá innblástur 300 00:25:45,560 --> 00:25:50,650 eða ef þú vilt að horfa meira á kenningu hér eru nokkur góð stökk burt stöðum. 301 00:25:50,650 --> 00:25:53,870 Þakka þú mjög mikill. 302 00:25:58,470 --> 00:25:59,910 [CS50.TV]