29Jun

Како користити основне редовне изразе за боље тражење и уштеду времена

click fraud protection

Без обзира да ли сте претраживали Греп или гледали програме који могу преименовати датотеке за вас, вероватно сте се питали да ли је постојао лакши начин да завршите свој посао.Срећом, постоји, и зове се "регуларни изрази."

( Цомиц фром КСКЦД.цом)

Шта су редовни изрази?

Регуларни изрази су изјаве формиране на веома специфичан начин и које могу бити различити резултати.Такође познати као "регек" или "регекп", они се првенствено користе у функцијама за претраживање и именовање датотека.Један регек се може користити као формула за стварање више различитих могућих излаза, од којих се сви претражују.Алтернативно, можете одредити како се група датотека мора назвати наведеном регексом, а ваш софтвер се може постепено пребацити на следећи намјенски излаз.На тај начин можете једноставно и ефикасно преименовати више датотека у више фолдера, а можете ићи изван ограничења једноставног система нумерације.

Пошто се употреба регуларних израза ослања на посебну синтаксу, ваш програм мора бити способан да их очита и разрађује.Многи програми за преименовање серијских датотека за Виндовс и ОС Кс имају подршку за регекпс, као и алатку ГРЕП за претрагу преко цросс платформа( коју смо додирнули у Басх Сцриптинг за Водич за почетнике) и Авк командној линији за * Ник.Поред тога, многи алтернативни управљачки фајлови, лансери и алати за претрагу користе их и имају веома важно место у програмским језицима као што су Перл и Руби.Друга развојна окружења као што су. НЕТ, Јава и Питхон, као и предстојећа Ц ++ 11, пружају стандардне библиотеке за коришћење регуларних израза.Као што можете замислити, они могу бити веома корисни када покушавате да минимизирате количину кода коју унесете у програм.

instagram viewer

Напомена о избегавању знакова

Пре него што вам покажемо примере, желели бисмо да нешто наговестимо.Користићемо басх схелл и греп наредбу да вам покажемо како да примените регуларне изразе.Проблем је у томе што понекад желимо да користимо специјалне карактере које треба пренијети на греп, а басх схелл ће тумачити тај карактер јер га и схелл користи.У овим околностима, морамо "побјећи" од ових ликова.Ово може бити збуњујуће јер се овај "бекство" карактера такође јавља у регекпс-у.На пример, ако желимо да унесемо ово у греп:

\

морамо да га заменимо са:

\\\ & лт;

Сваки специјалан карактер овде добија једну бацксласх.Алтернативно, такође можете користити појединачне цитате:

'\' '

Појединачне цитате говоре басх НОТ да тумаче шта је унутар њих.Док захтевамо да се предузму кораци како бисмо могли да вам покажемо, ваши програми( нарочито ГУИ-ови) често неће захтевати ове додатне кораке.Да би ствари биле једноставне и једноставне, стварни регуларни израз ће вам бити дата као цитирани текст, а видећете сакривену синтаксу у наредбама екрана за командну линију.

Како се проширују?

Регекпс су стварно концизан начин постављања термина тако да ваш рачунар може да их прошири у више опција.Хајде да погледамо следећи пример:

том [0123456789]

Квадратне заграде - [и] - реците машину за анализу да било шта унутра, било који ОНЕ знак може да се користи за подударање.Све што се налази у тим заградама се назива скуп знакова.

Дакле, ако смо имали огромну листу уноса и користили смо ову регек за претраживање, сљедећи термини би били упарени:

  • том
  • том0
  • том1
  • том2
  • том3

и тако даље.Међутим, следећа листа НИЈЕ усклађена, тако да НИЈЕ приказана у вашим резултатима:

  • парадајз;регек не објашњава никаква слова после "том"
  • Том;регек је осетљив на слово!

Такође можете да изаберете да претражујете са временским периодом( .) Који ће дозволити било који карактер присутан све док постоји присутан карактер.

Као што видите, греппинг са

. том

није подигао термине који су имали само "том" на почетку.Чак је и "зелени парадајз", јер се простор пре "том" рачуна као карактер, али изрази попут "томФ" на почетку нису имали карактер и зато су их игнорисали.

Напомена: Грепово подразумевано понашање је да вратите целу линију текста када неки део одговара вашем регексу.Други програми можда то не чине, а то можете искључити у греп-у са ознаком "-о".

Такође можете да наведете алтернативу помоћу цеви( |), овако:

специали( с | з) е

Ово ће наћи обоје:

  • специјализовати
  • специјализовати

Када користите греп наредбу, морамо избјећи посебне знакове( ,|, и) са повратном кашом, као и користећи заставицу '-Е' да би ово функционисало и избегле ружне грешке.

Као што смо горе поменули, то је зато што морамо рећи басх схелл-у да пренесе ове карактере у греп и да ништа не уради са њима.Застава '-Е' говори греп да користи заграде и цеви као посебне знакове.

Можете претраживати искључивањем помоћу карата који је унутар вашег загради и на почетку скупа:

том [^ Ф | 0-9]

Поново, ако користите греп и басх, запамтите да сте побјеглита цев!

Термини који су били на листи али нису приказани су:

  • том0
  • том5
  • том9
  • томФ

Ови нису одговарали нашем регек-у.

​​Како могу да користим окружења?

Често претражујемо по границама.Понекад само желимо стрингове који се појављују на почетку речи, на крају речи или на крају линије кода.Ово се лако може учинити користећи оно што зовемо сидри.

Коришћењем карата( изван заграда) омогућава вам да означите "почетак" линије.

^ том

Да бисте потражили крај линије, користите знак за долар.

том $

Можете видети да наш стринг за претраживање долази БЕФОРЕ сидро у овом случају.

Можете такође и за утакмице које се појављују на почетку или на крају ријечи, а не на цијелим линијама.

\ & лт; том

том \ & гт;

Као што смо поменули у напомени на почетку овог чланка, морамо да побегнемо од ових посебних карактера јер користимо басх.Алтернативно, можете користити и поједине цитате:

Резултати су исти.Уверите се да користите поједине цитате, а не двоструке цитате.

Други ресурси за напредне Регекпс

Овде смо само погодили врх леденог брега.Такође можете тражити услове новца означене маркацијом валуте и потражити било који од три или више одговарајућих услова.Ствари се могу стварно компликовати.Ако сте заинтересовани да сазнате више о регуларним изразима, погледајте следеће изворе.

  • Зитрак.цом има неколико страница са конкретним примерима зашто ствари раде и не одговарају.
  • Регулар-Екпрессионс.инфо такође садржи водич за убице за многе напредније ствари, као и за корисну референтну страницу.
  • Гну.орг има страницу посвећену коришћењу регекпс-а са греп-ом.

Такође можете да правите и тестирате своје регуларне изразе помоћу бесплатног онлине алата базираног на Фласх-у под називом РегЕкр.Функционише док типујете, бесплатан је и може се користити у већини претраживача.

Имате ли омиљену употребу за регуларне изразе?Да ли знате за велики преименивач серије који их користи?Можда само желите да се хвалиш греп-фу.Доприните својим мислима коментирањем!