1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Семинар: Хватање са регуларним изразима] 2 00:00:02,000 --> 00:00:04,000 [Јован Муссман-Универзитет Харвард] 3 00:00:04,000 --> 00:00:07,220 [Ово је ЦС50.-ЦС50.ТВ] 4 00:00:07,780 --> 00:00:11,610 Ок. Па, сви су добродошли. Ово је ЦС50 2012. 5 00:00:11,780 --> 00:00:16,610 Зовем се Јован, а ја ћу се данас говоримо о регуларним изразима. 6 00:00:16,610 --> 00:00:22,530 Регуларни изрази је пре свега алат, али такође понекад користи 7 00:00:22,530 --> 00:00:28,650 у коду активно да у суштини одговара шаре и жице. 8 00:00:28,650 --> 00:00:33,800 Дакле, овде је веб стрип из Кскцд. 9 00:00:34,440 --> 00:00:42,370 У овај стрип је мистерија где је убица 10 00:00:42,370 --> 00:00:47,860 затим неко на одмору, а протагонисти морају да 11 00:00:47,860 --> 00:00:52,500 претраживати 200 мегабајта поште у потрази за адресу. 12 00:00:52,500 --> 00:00:56,090 И они су о томе да када неко ко зна регуларне изразе - 13 00:00:56,090 --> 00:01:00,550 вероватно суперхерој - обара доле и пише неки код 14 00:01:00,550 --> 00:01:02,970 и решава мистерију убиства. 15 00:01:02,970 --> 00:01:07,370 Дакле, вероватно да ће бити нешто што ћете бити оснажени да 16 00:01:07,370 --> 00:01:09,370 после овог семинара. 17 00:01:09,370 --> 00:01:12,250 Само ћемо да обезбеди концизан увод у језик 18 00:01:12,250 --> 00:01:16,770 и дати вам довољно средстава да иде после више средстава на своје. 19 00:01:17,680 --> 00:01:21,700 >> Дакле, у основи регуларни изрази изгледају овако. 20 00:01:22,930 --> 00:01:25,550 То је регуларни израз у Руби. 21 00:01:25,550 --> 00:01:29,280 То није страшно разликује преко језика. 22 00:01:29,690 --> 00:01:37,630 Ми имамо само на косе црте да почне и обележити регуларни израз у Руби. 23 00:01:37,630 --> 00:01:42,880 И ово је регуларни израз да траже у обрасцу е-маил адресу. 24 00:01:42,880 --> 00:01:49,160 Дакле, видимо у првом мало изгледа за било алфанумерички знак. 25 00:01:50,500 --> 00:01:54,880 То је зато што емаил адресе често морају да почну са абецедном карактера. 26 00:01:55,460 --> 00:01:59,330 А онда специјалном карактеру следи симбол @. 27 00:01:59,330 --> 00:02:03,260 А онда иста ствар за име домена. 28 00:02:03,260 --> 00:02:10,030 А онда између 2 и 4 карактера да потражи цом., Нето, и. Итд. 29 00:02:10,850 --> 00:02:13,200 Дакле, то је још један пример регуларног израза. 30 00:02:13,200 --> 00:02:17,270 Дакле, регуларни изрази су протоколи за проналажење обрасцима у тексту. 31 00:02:17,270 --> 00:02:21,130 Они раде поређења, селекције, и замена. 32 00:02:21,690 --> 00:02:27,970 Дакле, Трећи пример је проналажење све телефонске бројеве који се завршавају у 54 у именику. 33 00:02:27,970 --> 00:02:34,360 Дакле, пре него Давид прасну у ЦС50 директоријум можемо тражите 34 00:02:34,360 --> 00:02:40,450 образац где имамо заграде онда 3 броја онда крај заграде, 35 00:02:40,450 --> 00:02:44,070 3 више бројева, цртица, број 2, а затим 54. 36 00:02:44,070 --> 00:02:48,310 И то би у суштини било како смо дошли до регуларним изразом да тражи то. 37 00:02:49,150 --> 00:02:52,960 >> Дакле, постоји - ми смо урадили неке ствари за ЦС50 који су помало 38 00:02:52,960 --> 00:02:59,740 регуларни изрази, па - на пример - у дицтионари.Ц фајлу 39 00:02:59,740 --> 00:03:04,720 за проверу правописа скуп проблема можда сте користили фсцанф 40 00:03:04,720 --> 00:03:07,930 прочитати у речи из речника. 41 00:03:07,930 --> 00:03:16,240 И можете видети проценат 45с тражи стринг од 45 карактера. 42 00:03:16,240 --> 00:03:20,020 Дакле, то је нешто као рудиментарном регуларног израза. 43 00:03:21,150 --> 00:03:26,060 И можете да имате 45 знакова који се уклапају рачун тамо 44 00:03:26,060 --> 00:03:28,080 и одабрати они горе. 45 00:03:28,080 --> 00:03:33,480 А онда други пример у најновијем проблема веб програмирање 46 00:03:33,480 --> 00:03:40,760 постављен у коду за дистрибуцију ПХП ми стварно имамо једноставан регуларни израз. 47 00:03:40,760 --> 00:03:46,790 А ово је једноставно тражи да провери да ли је веб страница која је донета у 48 00:03:46,790 --> 00:03:51,940 одговара било пријавите или одјавите региструјете ПХП.. 49 00:03:52,220 --> 00:03:57,910 А онда се враћају тачно или нетачно на основу тог регуларни израз се подударају. 50 00:03:59,400 --> 00:04:01,740 >> Дакле, када користити регуларни израз? 51 00:04:01,740 --> 00:04:04,820 Зашто си овде данас? 52 00:04:05,330 --> 00:04:08,480 Дакле, ви не желите да користите регуларни израз када постоји нешто што 53 00:04:08,480 --> 00:04:11,640 завршава посао за вас још лакше. 54 00:04:11,640 --> 00:04:15,510 Дакле, КСМЛ и ХТМЛ су заправо прилично лукав 55 00:04:15,510 --> 00:04:18,480 да пишу за регуларне изразе, као што ћемо видети у мало. 56 00:04:19,110 --> 00:04:23,280 Дакле, постоје наменски Парсерс за те језике. 57 00:04:24,170 --> 00:04:30,060 Такође је потребно да се помирим са трговинског оффу и тачности често. 58 00:04:30,060 --> 00:04:36,220 Ако покушавате - па смо видели регуларни израз за е-маил адресу, 59 00:04:37,370 --> 00:04:42,590 али кажу да је желео одређену емаил адресу и постепено 60 00:04:42,590 --> 00:04:48,570 регуларни израз може постати сложенији јер је постало прецизније. 61 00:04:49,580 --> 00:04:52,260 Дакле, то је један компромис. 62 00:04:52,260 --> 00:04:55,330 Морате да будете сигурни да сте добро правите регуларан. 63 00:04:55,330 --> 00:04:57,920 Ако тачно знате шта тражите можда би више смисла 64 00:04:57,920 --> 00:05:02,070 да стави у времену и написати ефикасније анализатор. 65 00:05:02,070 --> 00:05:06,980 И на крају ту је историјски проблем са регуларност 66 00:05:06,980 --> 00:05:08,940 израза и језика. 67 00:05:08,940 --> 00:05:12,960 Регуларни изрази су заправо много моћнији од 68 00:05:12,960 --> 00:05:16,450 Регуларни изрази по реци у формалном смислу. 69 00:05:17,130 --> 00:05:20,150 >> Дакле, ја не желим да идем предалеко у формални теорије, 70 00:05:20,150 --> 00:05:24,000 али већина језици који смо број у ствари нису редовни. 71 00:05:24,000 --> 00:05:29,110 И то је разлог зашто регуларни изрази понекад се не сматрају сви да је безбедно. 72 00:05:29,670 --> 00:05:33,150 Дакле, у основи постоји хијерархија Чомски за језике, 73 00:05:33,150 --> 00:05:38,400 и регуларни изрази се граде коришћењем синдикат, спајање, 74 00:05:38,400 --> 00:05:41,810 и Клеене звезда операцију да ћемо видети за неколико минута. 75 00:05:43,130 --> 00:05:48,860 Уколико сте заинтересовани за теорији постоји доста дешава испод хаубе. 76 00:05:50,360 --> 00:05:55,880 >> Дакле, кратак историјат - само за контексту овде - редовни сетови дошао 77 00:05:55,880 --> 00:05:59,580 у 1950, а онда смо имали једноставне уредници који 78 00:05:59,580 --> 00:06:03,300 регистрован регуларне изразе - само потрази за гудаче. 79 00:06:03,570 --> 00:06:09,110 Греп - што је алатка командне линије - био је један од првих 80 00:06:09,110 --> 00:06:14,160 Веома популарне алатке које регуларне изразе уграђен у 1960. 81 00:06:14,160 --> 00:06:20,560 У '80-им, Перл је изграђен - је програмски језик који 82 00:06:20,560 --> 00:06:24,110 укључује регуларне изразе веома видљиво. 83 00:06:24,550 --> 00:06:30,130 И онда смо недавно имали Перл компатибилни регуларни израз 84 00:06:30,130 --> 00:06:35,870 Протоколи у основи на другим језицима који користе велики део исте синтаксе. 85 00:06:36,630 --> 00:06:39,840 Наравно, најважнији догађај био је у 2008 86 00:06:39,840 --> 00:06:43,040 где је био први Национални Дан регуларним изразима, 87 00:06:43,040 --> 00:06:47,350 што верујем да је 1. јуна, ако желите да то прославимо. 88 00:06:48,430 --> 00:06:50,840 >> Опет, само мало више теорија овде. 89 00:06:52,180 --> 00:06:55,320 Дакле, постоји неколико начина прављења регуларне изразе. 90 00:06:55,950 --> 00:07:02,050 Један једноставан начин је да се изгради израз који ћете 91 00:07:02,050 --> 00:07:07,500 раде на тетиви тумачи - у основи градити мало мини-програм који 92 00:07:07,500 --> 00:07:11,870 ће анализирати комада стринг и види, "О, да ли то одговара регуларни израз или не?" 93 00:07:12,250 --> 00:07:14,250 А онда покренути тај. 94 00:07:14,250 --> 00:07:17,300 Дакле, ако имате веома мали регуларни израз, ово је вероватно 95 00:07:17,300 --> 00:07:19,380 најефикаснији начин да то урадите. 96 00:07:20,090 --> 00:07:25,420 А онда, ако вас - још једна опција је да реконструкција 97 00:07:25,420 --> 00:07:30,260 израз као што иде, а то је могућност симулира. 98 00:07:30,440 --> 00:07:37,690 А ови први покушаји регуларних израза алгоритама су 99 00:07:37,690 --> 00:07:44,330 релативно једноставна и релативно брза, али није имао пуно флексибилности. 100 00:07:44,330 --> 00:07:47,500 Тако да чак и да неке од ствари које ћемо да погледамо 101 00:07:47,500 --> 00:07:52,860 данас смо морали да урадимо сложеније регуларни израз 102 00:07:52,860 --> 00:07:56,650 имплементација које су потенцијално много спорије, тако да је нешто имати на уму 103 00:07:57,510 --> 00:08:02,920 Ту је и регуларни изрази ускраћивање напада сорте 104 00:08:02,920 --> 00:08:08,330 да искористи потенцијал ових новијих имплементација 105 00:08:08,330 --> 00:08:10,930 Регуларни изрази постати веома сложен. 106 00:08:11,570 --> 00:08:15,650 И на исти начин који смо видели у нападима бафера, 107 00:08:15,650 --> 00:08:21,610 имате нападе који раде тако што рекурзивне петље да 108 00:08:21,610 --> 00:08:24,400 прегазе капацитет меморије. 109 00:08:24,780 --> 00:08:29,540 И успут Регекен је један од званичних множине регуларног израза 110 00:08:29,540 --> 00:08:32,890 по аналогији са воловима у англосаксонског. 111 00:08:33,500 --> 00:08:40,169 >> Ок, тако да Питон Библиотека многи од вас овде лично имате Мац, 112 00:08:40,169 --> 00:08:43,860 тако да то заиста може да се на вашем екрану. 113 00:08:43,860 --> 00:08:47,480 Регуларни изрази су уграђени у Питхон-у. 114 00:08:48,070 --> 00:08:53,020 И тако Питхон раније учитан на Мац и такође доступан онлине на овом линку. 115 00:08:53,770 --> 00:08:57,350 Дакле, ако гледате можете да паузирате и проверите да ли имате Питхон 116 00:08:58,080 --> 00:09:00,170 што играмо овде. 117 00:09:00,780 --> 00:09:06,420 Постоји приручник на мрежи, тако да ако само откуцате Питхон у рачунар 118 00:09:06,420 --> 00:09:10,500 видећете да верзија појави у терминалу. 119 00:09:11,070 --> 00:09:17,720 Тако да сам дао линк ка упутству за верзију 2 Питхон као и Цхеат Схеет. 120 00:09:17,720 --> 00:09:23,100 Постоји верзија 3 Питхон, али ваш Мац не мора 121 00:09:23,100 --> 00:09:25,130 који долазе са инсталираним. 122 00:09:25,130 --> 00:09:27,360 Дакле, није толико другачији. 123 00:09:27,360 --> 00:09:33,270 Ок, па неке основе коришћења регуларних израза у Питхон-у. 124 00:09:34,080 --> 00:09:42,650 >> Дакле, овде сам користио врло једноставан израз, тако да сам Питхон поново увоз 125 00:09:43,750 --> 00:09:47,070 а затим је резултат ре.сеарцх. 126 00:09:47,070 --> 00:09:49,910 И претраживање траје 2 аргументе. 127 00:09:49,910 --> 00:09:56,040 Први је регуларни израз, а други је текст 128 00:09:56,040 --> 00:09:58,290 или ниска желите да анализирате. 129 00:09:58,290 --> 00:10:01,210 А онда сам се штампа на ресулт.гроуп. 130 00:10:01,580 --> 00:10:05,860 Дакле, то су 2 основне функције којима ћемо да видимо данас 131 00:10:06,790 --> 00:10:10,170 у учењу о регуларним изразима. 132 00:10:10,170 --> 00:10:12,880 Дакле, само се разбије овде ово регуларни израз 133 00:10:12,880 --> 00:10:21,770 х, а затим \ в и онда сам тако \ в само прихвата било абецедни знак тамо. 134 00:10:21,850 --> 00:10:26,820 Дакле, овде смо у потрази за "х", а затим још један абецедни знак 135 00:10:26,820 --> 00:10:30,060 а онда сам, па ево да се поклапају врат 136 00:10:30,060 --> 00:10:34,480 у, "Абрахам Линколн и сендвичи шунка". 137 00:10:35,040 --> 00:10:37,150 То је резултат те групе. 138 00:10:37,680 --> 00:10:43,130 Још једна ствар коју можемо да урадимо је да користимо наше пред низове текста у Питхон-у. 139 00:10:43,130 --> 00:10:46,220 Тако да претпостављам да ћу ићи напред и повуците је овде. 140 00:10:46,220 --> 00:10:49,210 Питхон поново увоз. 141 00:10:50,070 --> 00:10:54,000 И ако бих урадио исту ствар - рецимо текст, 142 00:10:55,390 --> 00:11:00,800 "Аврам," хајде да увећате - ту смо. 143 00:11:01,610 --> 00:11:06,430 Текст је, "Аврам шунка једе." 144 00:11:07,460 --> 00:11:15,260 У реду, а затим довести = ре.сеарцх. 145 00:11:16,260 --> 00:11:22,020 И онда може да буде израз наше ч, а онда ћу учинити дот м. 146 00:11:22,020 --> 00:11:26,280 Дакле, тачка је само потребно било који карактер који није нова линија укључујући и бројеве, 147 00:11:26,280 --> 00:11:28,650 проценат знаци, тако нешто. 148 00:11:28,650 --> 00:11:38,030 А онда текст - бум - и онда ресулт.гроуп--да. 149 00:11:38,030 --> 00:11:41,820 Дакле, то је само начин да се овде спроводи основну функционалност. 150 00:11:42,300 --> 00:11:55,110 Ако смо имали текст прстен који је луд - Текст - укључени рећи много обрнуте косе црте 151 00:11:55,110 --> 00:12:01,180 и жице унутар и ствари које би могле да изгледају као низова, 152 00:12:01,180 --> 00:12:08,480 онда вероватно желите да користите сирове унос текста да се уверите да је прихваћен. 153 00:12:08,480 --> 00:12:14,120 И то само изгледа тако. 154 00:12:14,120 --> 00:12:17,810 Дакле, ако смо у потрази за сваког од њих тамо не би требало да пронађе ништа. 155 00:12:19,070 --> 00:12:21,680 Али то је како да га спроведе, баш пре него што је низ 156 00:12:21,680 --> 00:12:24,990 регуларни израз сте ставили слово Р. 157 00:12:26,150 --> 00:12:30,260 >> Ок, хајде да наставимо. 158 00:12:30,260 --> 00:12:33,730 У реду - па хајде да погледамо неколико понављају обрасце овде. 159 00:12:34,750 --> 00:12:39,150 Дакле, једна ствар коју желите да урадите је да понови ствари 160 00:12:40,040 --> 00:12:42,480 као што сте у потрази кроз текст. 161 00:12:42,480 --> 00:12:48,300 Тако да следи било који број б - ти АБ *. 162 00:12:48,630 --> 00:12:51,620 А онда такође постоји низ других правила. 163 00:12:51,620 --> 00:12:54,380 И можете погледати све ове горе, ја ћу проћи кроз неке од 164 00:12:54,380 --> 00:12:57,630 најчешће коришћених. 165 00:12:57,630 --> 00:13:03,920 Дакле, АБ + је било праћено Н већи од 0 од б. 166 00:13:04,510 --> 00:13:08,000 АБ? је праћено 0 или 1 на б. 167 00:13:09,190 --> 00:13:18,580 аб {Н} је потом из Н б, а затим тако даље. 168 00:13:18,580 --> 00:13:22,820 Ако имате 2 броја у заграда сте наводећи низ 169 00:13:23,300 --> 00:13:25,440 то може бити евентуално упарен. 170 00:13:26,390 --> 00:13:30,420 Тако ћемо погледати још на неколико образаца који се понављају у минути. 171 00:13:31,960 --> 00:13:42,300 Дакле 2 ствари које треба имати на уму приликом коришћења оваквих алата Хватање овде. 172 00:13:42,300 --> 00:13:52,120 Па реци ми желимо да погледамо ХМ из "Абрахам Линколн прави сендвиче врат." 173 00:13:52,120 --> 00:13:55,230 Тако да сам променио име Абрахама Линколна Авраму. 174 00:13:55,230 --> 00:14:00,290 И сада смо у потрази за оно што се враћа овом функција претраге, 175 00:14:00,290 --> 00:14:03,270 и то само даје врат у овом случају. 176 00:14:03,620 --> 00:14:08,080 И то не само зато што тражи природно узима леви највише ред. 177 00:14:08,080 --> 00:14:12,130 И сви регуларни изрази, осим ако није другачије одредите ће то урадити. 178 00:14:12,830 --> 00:14:18,880 Ако бисмо желели да пронађе све што је функција за то - наћи све. 179 00:14:18,880 --> 00:14:35,100 Дакле, да би баш изгледа као АЛЛ = (ре.финдалл 'х.м', текст) 180 00:14:35,100 --> 00:14:44,540 а затим алл.гроуп (). 181 00:14:44,540 --> 00:14:51,040 Сви производи и шунку и шунком, у овом случају оба конце у сваком Аврама шунке. 182 00:14:51,610 --> 00:14:55,110 Дакле, то је још једна опција. 183 00:14:56,250 --> 00:15:06,940 >> Велики. Друга ствар коју треба имати на уму је да регуларни изрази узети највећи интуитивно. 184 00:15:06,940 --> 00:15:09,520 Погледајмо овај пример. 185 00:15:10,200 --> 00:15:16,070 Урадили смо то овде крајње леве претрагу, а онда сам покушао већи претрагу 186 00:15:16,070 --> 00:15:18,800 коришћењем Клеене звезда оператера. 187 00:15:18,800 --> 00:15:24,180 Дакле, за "Абрахам Линколн прави сендвиче шунка", а добио сам само вратио 188 00:15:24,180 --> 00:15:26,280 м као резултат. 189 00:15:26,280 --> 00:15:31,670 Разлог за то грешка је била што сам могао узети било који број 190 00:15:31,670 --> 00:15:36,140 ч је зато што није прецизирао ништа да иде између ч и м. 191 00:15:36,140 --> 00:15:42,010 Једини пример да је тамо имао м - једини примери тамо са М у њој 192 00:15:42,010 --> 00:15:46,220 и било који број Х су само ниска м. 193 00:15:46,490 --> 00:15:51,850 Онда сам пробао поново, рекао сам, "У реду, хајде да се овде стварно највећу групу." 194 00:15:51,850 --> 00:15:59,670 А онда сам ч. * М, тако да само даје било који број знакова између ч и м. 195 00:16:00,280 --> 00:16:02,950 А ако тек почињете и размишљања, "Ох, у реду, па ће 196 00:16:02,950 --> 00:16:11,560 донеси ми врат, "то је заправо потребно све од х у Абрахама Линколна 197 00:16:11,560 --> 00:16:13,690 па све до краја шунке. 198 00:16:14,040 --> 00:16:18,110 То је похлепан, то види ч - све ово други текст - м, 199 00:16:18,110 --> 00:16:21,280 и то је оно што је потребно за 200 00:16:22,060 --> 00:16:27,480 Ово је посебно Озбиљна - ово је карактеристика коју такође можете да 201 00:16:27,480 --> 00:16:30,670 спецификацију за то не буде похлепан за остале функције. 202 00:16:31,480 --> 00:16:34,490 Али, то је нешто што морамо имати на уму посебно 203 00:16:34,490 --> 00:16:38,720 када се гледа у ХТМЛ текст, што је један од разлога да 204 00:16:38,720 --> 00:16:41,500 Регуларни изрази су тешко за ХТМЛ. 205 00:16:42,460 --> 00:16:46,310 Јер, ако имате отворен ХТМЛ ознаке и онда доста ствари у средини 206 00:16:46,310 --> 00:16:49,820 и онда неки други ХТМЛ таг затворен много касније у програму, 207 00:16:49,820 --> 00:16:55,420 Управо сте појели пуно ХТМЛ кода можда грешком. 208 00:16:56,200 --> 00:17:01,840 >> Сва права - тако да више специјалних карактера, као и многе друге језике, 209 00:17:01,840 --> 00:17:04,780 да побегне користећи косу црту. 210 00:17:04,780 --> 00:17:10,329 Тако да могу да користе тачку да наведете било који карактер, осим за нову линију. 211 00:17:10,329 --> 00:17:14,550 Можемо користити в бекство за спецификацију абецедни знак. 212 00:17:14,550 --> 00:17:20,329 И са д аналогије излаза за сваки цео број - нумерички карактер. 213 00:17:20,630 --> 00:17:27,440 Можемо навести - можемо користити заграде да бисте навели сродне изразе. 214 00:17:27,440 --> 00:17:30,970 Дакле, ово би прихватили, Б или Ц. 215 00:17:31,320 --> 00:17:37,000 И можемо одредити или опције или А или Б. 216 00:17:37,000 --> 00:17:41,110 На пример - ако смо у потрази за више могућности 217 00:17:41,110 --> 00:17:44,940 у загради можемо да користимо као оператор или у - 218 00:17:44,940 --> 00:17:52,480 па хајде да се вратимо на овај пример овде. 219 00:17:53,000 --> 00:17:59,790 А сада узмимо - хајде да се вратимо на овом примеру овде, а затим 220 00:17:59,790 --> 00:18:12,290 узети АЕ - па то би требало да се врати - Претпостављам да је ово још увек Аврам. 221 00:18:12,290 --> 00:18:17,410 Дакле, ово - ако урадимо све - одлично. 222 00:18:17,410 --> 00:18:22,700 Дакле, хајде да ажурирате овде текст. 223 00:18:22,700 --> 00:18:34,690 "Аврам једе врат док му Хемминг -. Док Хемминг" Велики. 224 00:18:44,090 --> 00:18:47,330 Све. Велики. Сада смо добили врат, шунка, и хем. 225 00:18:48,510 --> 00:18:59,370 Док Хемминг - док му зуји - зуји док се скута њега. Велики. 226 00:19:00,350 --> 00:19:03,250 Иста ствар. 227 00:19:03,820 --> 00:19:09,180 Сада све враћа још само шунка, шунка, а Хем без брање горе на Хум или њега. 228 00:19:09,940 --> 00:19:22,600 Велики - па шта ако бисмо желели да погледамо било који - тако да смо могли да урадимо 229 00:19:23,510 --> 00:19:33,810 њега, или - ми ћемо вратити на то. 230 00:19:34,810 --> 00:19:45,760 Добро - па - у реду - на позицијама можете користити курсор или знак за долар 231 00:19:45,760 --> 00:19:49,350 да наведете да сте у потрази за нешто на почетку или на крају стринга. 232 00:19:50,260 --> 00:19:52,260 Или почетак или крај речи. 233 00:19:52,400 --> 00:19:54,470 То је један од начина да се то користи. 234 00:19:55,630 --> 00:20:01,160 >> Добро - па да се играте са мало већих блок текста. 235 00:20:03,950 --> 00:20:08,310 Рецимо овде овај ред - овде ову изјаву. 236 00:20:08,310 --> 00:20:11,360 Моћ регуларног израза је да они могу одредити обрасце 237 00:20:11,360 --> 00:20:13,390 Не само фиксна знакове. 238 00:20:14,900 --> 00:20:18,790 Учинимо - назовимо овај блок. 239 00:20:22,400 --> 00:20:27,110 Онда ћемо прочитати све што унутра 240 00:20:28,890 --> 00:20:50,820 А онда су - хајде да све =, тако што су неке ствари које смо могли да тражи у овде профитабилно? 241 00:20:50,820 --> 00:20:54,070 Могли би да потражите израз уво. 242 00:20:55,050 --> 00:21:01,520 Није занимљиво. Шта мислите о томе? Видећемо шта ће се десити. 243 00:21:03,710 --> 00:21:05,710 Дао сам проблем. 244 00:21:06,380 --> 00:21:10,750 Дакле, било који број ствари пре него што се поново и све. 245 00:21:10,750 --> 00:21:15,630 Тако да би требало да се врати све, од почетка до свих ре можда пар пута. 246 00:21:18,800 --> 00:21:21,970 А онда овде имамо моћ регуларних израза је да су 247 00:21:21,970 --> 00:21:24,900 може одредити обрасце не само ликови су овде. 248 00:21:24,900 --> 00:21:28,510 Дакле, све до коначног ре, почело је са леве стране и највише био похлепан. 249 00:21:30,710 --> 00:21:32,710 Хајде да видимо - шта друго можемо тражити. 250 00:21:32,710 --> 00:21:39,860 Ваљда једну ствар, ако сте били заинтересовани у потрази за заменице она и он, 251 00:21:39,860 --> 00:21:44,600 можете да проверите е је једнака 0 или 1. 252 00:21:44,600 --> 00:21:49,710 и израз је, а то се вероватно неће вратити - 253 00:21:49,710 --> 00:21:58,020 Ох, мислим да се вратио зато што смо тражили на власти, тога дана, овде су. 254 00:22:00,590 --> 00:22:06,270 Покушајмо прецизирајући да то мора да дође на почетку нечега. 255 00:22:06,640 --> 00:22:09,530 Хајде да видимо да ли то спада. 256 00:22:09,530 --> 00:22:19,630 Тако да можемо да урадимо масти, и ту ми не добијамо ништа, јер је она и он 257 00:22:19,630 --> 00:22:22,870 не јављају у ову фразу. 258 00:22:24,960 --> 00:22:30,410 Велики. Добро - па назад у ту мачку. 259 00:22:30,410 --> 00:22:35,720 Тако сложени обрасци се повреди мозак. 260 00:22:35,720 --> 00:22:40,500 Дакле, то је разлог зашто користимо регуларне изразе да бисте избегли ове проблеме. 261 00:22:40,820 --> 00:22:43,520 >> Дакле, ево неких корисних начина можете да се играте са. 262 00:22:43,520 --> 00:22:50,290 Гледали смо претрагу данас, али такође можете да користите мец, Сплит, финдалл и групе. 263 00:22:50,290 --> 00:22:53,970 Дакле других кул ствари које можете да урадите са регуларним изразима осим само 264 00:22:53,970 --> 00:22:58,870 у потрази за обрасцима узима узорак и држи све мечеве - 265 00:22:58,870 --> 00:23:02,530 њене варијабле - и онда они користе у коду касније. 266 00:23:02,850 --> 00:23:05,980 То може да буде веома корисно. Друге ствари могу да се броји. 267 00:23:05,980 --> 00:23:11,720 Тако да можемо рачунати на број инстанци регуларни израз образац, 268 00:23:11,720 --> 00:23:13,960 и то је оно што могу да користе групе за. 269 00:23:13,960 --> 00:23:17,550 И други модови као и могуће су. 270 00:23:18,040 --> 00:23:22,980 Ја само желим да кажем нешто више о другим начинима можете користити регуларне изразе. 271 00:23:22,980 --> 00:23:29,100 >> Дакле, још једна напредна апликација је у фази усклађивања. 272 00:23:29,100 --> 00:23:33,450 Дакле, ако сте у потрази за текст за изражавање, Јулије Цезар, 273 00:23:33,450 --> 00:23:37,740 и ти види ни Гај Јулије Цезар или име Јулија Цезара на другим језицима, 274 00:23:37,740 --> 00:23:44,400 онда можда ћете желети да доделите неку тежину тих вредности. 275 00:23:44,400 --> 00:23:48,930 А ако је довољно близу - ако пређе одређени праг - онда желите 276 00:23:48,930 --> 00:23:50,860 да би могли да прихвате Јулија Цезара. 277 00:23:50,860 --> 00:24:00,580 Дакле, постоји неколико различитих имплементација за то у неколико другим језицима. 278 00:24:02,580 --> 00:24:08,420 Овде су неке друге алатке, Регек Пал - згодан мали апп онлине да 279 00:24:08,420 --> 00:24:12,190 Проверите да ли ваш регуларни изрази се исправно састављен. 280 00:24:12,190 --> 00:24:18,500 Ту су и самосталне алатке које можете да покренете са десктопа 281 00:24:18,500 --> 00:24:22,100 као што су Ултра Пико, и као и само куваре. 282 00:24:22,100 --> 00:24:25,410 Дакле, ако радите пројекат који укључује гомилу регуларним изразима 283 00:24:25,410 --> 00:24:29,810 ово је вероватно место за излазак изван оквира данас. 284 00:24:31,520 --> 00:24:35,770 И онда само да вам дати осећај колико је то честа 285 00:24:35,770 --> 00:24:44,090 постоји греп у Уникс, Перл има уграђене, а Ц је ПЦРЕ за Ц. 286 00:24:44,090 --> 00:24:48,890 А онда сви ови други језици имају регуларни израз пакете 287 00:24:48,890 --> 00:24:52,020 који раде са суштински исту синтаксу имамо укус данас. 288 00:24:52,020 --> 00:24:54,790 ПХП, Јава, Руби, и тако даље. 289 00:24:56,080 --> 00:24:58,980 >> Гоогле Цоде Сеарцх је заиста вредан помена, то је један од 290 00:24:58,980 --> 00:25:05,720 релативно мали број апликација вани који омогућава јавности да приступи 291 00:25:05,720 --> 00:25:07,800 његова база података помоћу регуларних израза. 292 00:25:07,800 --> 00:25:12,920 Дакле, ако се осврнемо на Гоогле Цоде Сеарцх можете наћи код 293 00:25:12,920 --> 00:25:16,880 Ако сте у потрази за пример како може да се користи функција, 294 00:25:16,880 --> 00:25:21,610 можете користити регуларни израз да пронађе ту функцију која се користи у свим врстама различитих предмета. 295 00:25:21,610 --> 00:25:28,000 Можете да тражите фврите, а онда можете да погледате на застави писати или читати 296 00:25:28,000 --> 00:25:32,000 ако сте хтели пример фврите се користи у том случају. 297 00:25:33,530 --> 00:25:37,010 Тако исто тамо, а овде су неке референце. 298 00:25:37,010 --> 00:25:40,990 То ће бити доступан онлине, као, тако да иде напред када је 299 00:25:40,990 --> 00:25:45,560 желите да погледате, Питхон, Перл греп - само желите да добијете инспирацију 300 00:25:45,560 --> 00:25:50,650 или ако желите да погледате више у теорији Овде су неке добре скочивши местима. 301 00:25:50,650 --> 00:25:53,870 Пуно Вам хвала. 302 00:25:58,470 --> 00:25:59,910 [ЦС50.ТВ]