Уласн гісторыя: На гэтай старонцы, здаецца, даволі шырока чытаць, але толькі час ад часу атрымлівае ахвяраванні на Paypal вышэй спасылцы. Трагедыя суполак і ўсё, што... Але ўсё ж, калі любы з вас хацелі б ахвяраваць даляр ці два, я цаню гэта?
Ва ўсякім выпадку, гэты ўрок быў упершыню апублікаваны DeveloperWorks IBM. Гэтая вэрсія ўтрымлівае некалькі невялікіх змен, што чытачы выказалі здагадку, паколькі арыгінал публікацыі. Пашыраны і абноўлены варыянт можна знайсці ў маёй кнізе, апрацоўкі тэксту ў Python
![]() | Гэты падручнік з'яўляецца толькі адзін вялікі файл HTML, з некалькі графіка, выкарыстоўваная на гэтым шляху. Проста пракруціць ўніз, каб прачытаць яго. Друк можа сапсаваць некаторыя ўрокі ў сярэдзіне - але потым, вы не плаціце значна каб атрымаць гэта. |
![]() | Гэты падручнік прызначаны для карыстальнікаў і праграмістаў, якія пачалі працаваць з інструментамі, якія выкарыстоўваюць рэгулярныя выразы, але якія не зусім камфортна з тонкасцях з іх. Нават тыя карыстальнікі, якія, магчыма, выкарыстоўваць рэгулярныя выразы ў мінулым, але забыліся некаторыя дэталі могуць атрымаць выгаду з гэтага як перападрыхтоўкі. Пасля завяршэння гэтага ўрока вы яшчэ не будуць экспертам у выкарыстанні рэгулярных выразаў, каб найлепшым чынам. Але гэты падручнік у спалучэнні з мноствам практыцы з рознай выпадках гэта ўсё, Вы павінны быць экспертам. Паняцці рэгулярных выразаў надзвычай простым і эфектыўным... гэта іх дадатак, якое займае пэўную працу. |
![]() | Чытаць падручнік, каб атрымаць доўгі адказ. Кароткі адказ такі, што рэгулярнае выраз кампактны спосаб апісання складаных мадэляў у тэкстах. Вы можаце выкарыстоўваць іх для стварэння шаблонаў для пошуку і, як толькі знойдзены, для змены мадэлі ў складаных выпадках. Яны таксама могуць быць выкарыстаны для запуску праграмных дзеянняў, якія залежаць ад мадэлі. Насмешлівы каментар праграмістамі, варта задумацца: "Часам у вас ёсць праблемы праграмавання і здаецца, што лепшым рашэннем з'яўляецца выкарыстанне рэгулярных выразаў, а цяпер у вас ёсць дзве праблемы." Рэгулярныя выразы дзіўна магутны і глыбока выразны. Вось менавіта таму, запісаўшы іх гэтак жа памылак, як напісанне любы іншы складаны код праграмавання. Гэта заўсёды лепш вырашаць сапраўды простая задача ў просты спосаб, калі вы выходзіце за межы простага, думаць аб рэгулярных выразах. |
![]() | Вялікая колькасць інструментаў ўключае рэгулярныя выразы як частку сваёй функцыянальнасці. Unix-арыентаваных інструментаў каманднага радка, як Ёсць некалькі варыянтаў у сінтаксісе рэгулярных выразаў паміж рознымі інструментамі, якія іх выкарыстоўваюць. Некаторыя прылады дадаць пашыраныя магчымасці, якія не даступныя ўсюды. Увогуле, для найпростых выпадкаў, гэты ўрок будзе выкарыстоўваць прыклады заснаваныя на |
![]() | Для мэт прадстаўлення прыклады ў гэтым падручніку, рэгулярныя выразы апісаны будзе акружаны касую рысу. Гэты стыль размежавання рэгулярных выразаў выкарыстоўваецца Чытайце наперад, каб зразумець гэта, напрыклад, цяпер проста разумею, што фактычнае рэгулярны выраз ўсё паміж касой рысы. Шматлікія прыклады будуць суправаджацца ілюстрацыяй таго, што паказвае, рэгулярнае выраз, і тэкст, які будзе вылучаны для кожнага матчу на гэта выраз. |
![]() | Дэвід Мерца гэта пісьменнік, праграміст, і настаўнік, які заўсёды імкнецца палепшыць свае сувязі для чытачоў (і падручнік установам). Ён вітае любыя каментары, калі ласка, накіроўвайце іх на <mertz@gnosis.cx>. |
Пасля завяршэння гэтага ўрока вы бачылі асновы (і трохі некаторыя складаныя тэмы) рэгулярных выразаў. Лепш за ўсё рабіць далей, каб пачаць іх выкарыстоўваць у рэальных жыццёвых праблем. Першае, што трэба глядзець на гэта ў дакументацыі, якая суправаджае канкрэтны інструмент вы выкарыстоўваеце. Акрамя таго, колькасць друкаваных кніг маюць добрыя тлумачэння рэгулярных выразаў, часта, як ажыццяўляюцца канкрэтныя інструменты. Некаторыя кнігі аўтар гэтага падручніка былі выкарыстаны матэрыялы з з'яўляюцца:
|
| Самы просты шаблон суправаджаецца рэгулярны выраз літарны знак ці паслядоўнасць літарных знакаў. Усё, што ў мэтавай тэкст, які складаецца роўна з гэтых знакаў у сапраўды паказаным парадку будуць супадаць. Ніжні рэгістр знакаў не супадае з верхняй версіі выпадку, і наадварот. Прасторы ў рэгулярнае выраз, дарэчы, запалкі літаральным прастору ў мішэні (гэта ў адрозненне ад большасці моў праграмавання або сродкі каманднага радка, дзе прасторы асобных ключавых слоў). |
|
Колькасць знакаў маюць адмысловае значэнне ў рэгулярных выразах. Сімвал з асаблівым сэнсам можна падабраць, але для гэтага вы павінны спачатку трэба з зваротнай касой рысы (гэта ўключае зваротную касую рысу сябе: каб адпавядаць адзін зваротны слеш ў мэту, рэгулярнае выраз павінна ўключаць "\ \"). |
| Два спецыяльных сімвалаў выкарыстоўваюцца практычна ва ўсіх рэгулярных выразаў інструменты, каб адзначыць пачатак і канец радка: ўстаўкі (^) і dollarsign ($). Каб адпавядаць ўстаўкі або dollarsign як літаральны характар, вы павінны пазбавіцца ад яе (г.зн. перад ім зваротную касую рысу "\"). Цікавая рэч аб карэткі і dollarsign з'яўляецца тое, што яны адпавядаюць нулявой шырыні мадэлі. Гэта значыць даўжыня радка суправаджацца ўстаўкі або dollarsign само па сабе з'яўляецца нуль (але астатняя частка рэгулярнага выразы можа яшчэ залежыць ад матчу з нулявой шырынёй). Многія інструменты рэгулярнага выказвання з'яўляюцца яшчэ адным нулявой шырыні карціны ў слова-мяжы (\ б). Словы могуць быць падзеленыя прабеламі, як прабелы, табуляцыі, новыя радкі, або іншыя сімвалы, такія як нулі; слова мяжой шаблоне фактычнай кропкі, дзе слова пачынаецца або заканчваецца, не асабліва прабелы. |
| У рэгулярных выразах, перыяд можа стаяць любы знак. Як правіла, сімвал новай радкі не ўваходзіць, але большасць інструментаў маюць дадатковы перамыкаецца ў сілу ўключэння сімвал новай радкі таксама. Выкарыстанне ў перыяд карціна спосаб патрабуе, што "нешта", адбываецца тут, не маючы вырашыць, што. Карыстальнікі, якія знаёмы з DOS каманднага радка маскі будуць ведаць, пытальнік, як запаўненне ролю "некаторых знакаў" у каманду маскі. Але ў рэгулярных выразах, пытальнік мае рознае значэнне, і перыяд выкарыстоўваецца ў якасці шаблону. |
| Рэгулярнае выраз можа мець літарных знакаў у ёй, а таксама нулявой шырыні пазіцыйных мадэляў. Кожны літарны знак ці пазіцыйнага карціна атама ў рэгулярным выразе. Вы таксама можаце згрупаваць некалькі атамаў разам у невялікі рэгулярнае выраз, якое з'яўляецца часткай больш буйнога рэгулярнага выразы. Хтосьці можа быць схільны называць такія групоўкі "малекулы", але звычайна яе завуць таксама атама. У больш старых Unix-арыентаваных інструментаў, такіх як |
| Замест таго, каб назваць толькі аднаго знака, вы можаце ўключыць шаблён у рэгулярнае выраз, якое адпавядае любому з набору знакаў. Набор сімвалаў можа быць зададзены ў выглядзе простага спісу ў квадратных дужках, напрыклад, Многія інструменты рэгулярнага выразы таксама забяспечыць выхад стылі цэтлікі для найбольш часта выкарыстоўваюцца класа сімвалаў, такіх як |
| Карэткі сімвал сапраўды можа мець два розных значэння ў рэгулярных выразах. Вялікую частку часу, гэта азначае, у адпаведнасці з нулявой даўжыні ўзору для пачатку лініі. Але калі яна выкарыстоўваецца ў пачатку класа сімвалаў, ён змяняе сэнс знака класа. Усё, што не ўключаны ў пералічаны набор знакаў адпавядае. |
| Выкарыстаньне класаў персанажаў з'яўляецца спосаб паказаць, што альбо адна, то іншая рэч можа адбыцца ў вызначаным месцы. Але што, калі вы хочаце паказаць, што любы з цэлых два подвыражения адбываюцца ў пазіцыі ў рэгулярным выразе? Для гэтага вам выкарыстоўваць чаргаванне аператара, вертыкальная рыса ("|"). Гэта знак, які таксама выкарыстоўваецца для абазначэння труб у Unix/абалонкі DOS, і часам называецца вертыкальнай рысы. Вертыкальнай рысы ў рэгулярны выраз паказвае чаргаванне ўсё ў групе складаючы яго. Што гэта азначае, што нават калі Ёсць некалькі груп злева і справа ад вертыкальнай рысы, чаргаванне прагна пытае за ўсё, з абодвух бакоў. Для выбару сферы чаргаванне, вы павінны вызначыць групу, якая ўключае ў сябе мадэлі, якія могуць супадаць. Прыкладзе. |
| Адзін з самых магутных і агульныя рэчы, якія вы можаце зрабіць з дапамогай рэгулярных выразаў з'яўляецца паказаць, колькі разоў атама адбываецца ў поўнай рэгулярнае выраз. Часам вы жадаеце паказаць што-то аб з'яўленні аднаго знака, але вельмі часта вы зацікаўлены ў вызначэнні ўзнікнення класавага характару або згрупаваныя выразы. Існуе толькі адзін квантор уваходзіць у "асноўныя" сінтаксіс рэгулярных выразаў, зорачка ("*"); на англійскай мове гэта азначае "некаторыя ці нічога" ці "нуль або больш." Калі вы хочаце, каб паказаць, што любую колькасць атамаў можа адбывацца як частка шаблону, выканайце атама зорачкай. Без кванторов, групоўка выразы на самай справе не служыць шмат мэтаў, але як толькі мы можам дадаць да квантор подвыражения мы можам што-небудзь сказаць аб узнікненні подвыражения ў цэлым. Паглядзіце на прыклад. |
|
У некаторым родзе, адсутнасць якой-небудзь сімвал квантора пасля атама колькасна атама роўна: ён кажа атама адбываецца толькі адзін раз. Пашыраныя рэгулярныя выразы (якія большасць інструментаў падтрымкі) дадаць некаторыя іншыя карысныя нумары на "адзін раз дакладна" і "нуль або больш раз." Са знакам плюс ("+") азначае "адзін або некалькі разоў" і знак пытання ("?") азначае "нуль або адзін раз." Гэтыя кванторы на сённяшні дзень найбольш распаўсюджанымі пералічэнняў Вы завяршаеце наймення. Калі вы думаеце пра гэта, вы можаце бачыць, што пашыраныя рэгулярныя выразы на самай справе не дазваляюць "казаць" усе асноўныя з іх гэтага не робяць. Яны проста дазваляюць сказаць, што ў больш кароткія і больш чытэльным чынам. Напрыклад, " |
|
Выкарыстаньне пашыраных рэгулярных выразаў, можна паказаць адвольнае ўваходжанне карціна лічыцца выкарыстанне больш шматслоўныя сінтаксіс, чым пытальным знакам, са знакам плюс, а зорачка кванторов. Кучаравы фігурныя дужкі ("{" і "}") могуць акружыць дакладны падлік колькасці ўваходжання вы шукаеце. Найбольш агульны выгляд фігурнымі колькаснага выкарыстоўвае два дыяпазону аргументаў (спачатку павінны быць не больш, чым другі, і абодва павінны быць неадмоўных цэлымі лікамі). З'яўленне ўказанні колькаснага такім чынам, каб знаходзіцца ў межах мінімальных і максімальных паказаў (уключна). Як скарачэнне, альбо з аргументаў можа быць пустым: калі так мінімум/максімум вызначаны як нулявой/бясконцасці, адпаведна. Калі толькі адзін аргумент выкарыстоўваецца (без коскі там), менавіта гэты лік ўваходжання супадаюць. |
|
Адзін магутны інструмент у стварэнні шаблонаў пошуку з'яўляецца указаннем, што подвыражения, што быў ўзгоднены раней у рэгулярны выраз падабранае пазней у выразе. Мы робім гэта з дапамогай зваротных спасылак. Зваротныя спасылкі названыя лічбы ад 1 да 9, папярэднічае зваротная касая рыса/бегчы характару пры выкарыстанні ў гэтай манеры. Гэтыя зваротныя спасылкі ставяцца да кожнай наступнай групе ў матчы карціны, як і ў Важна адзначыць, што-то прыкладзе. Што атрымлівае суправаджаецца зваротнай спасылкі такое ж, знакавая радок адпавядае першы раз, нават калі з адпаведных шаблонаў радок магла б адпавядаць іншыя радкі. Проста паўтараць жа згрупаваныя подвыражения ў канцы рэгулярнага выразы не адпавядае той жа мэты, як выкарыстанне зваротнай спасылкі (але вы павінны вырашыць, што гэта вы сапраўды хочаце, каб матч у любым выпадку). Зваротныя спасылкі звярнуцца да б ні адбывалася ў папярэднія згрупаваныя выразы, у тым парадку, гэтыя згрупаваныя выразы адбылося. З-за наймення (\ 1 -\9), шмат інструментаў абмяжоўвае вас у дзевяць зваротных спасылак. Некаторыя прылады дазваляюць фактычныя назвы зваротных спасылак і/або захавання іх у зменных праграмы. Больш перадавыя часткі гэтага падручніка закрануць гэтыя тэмы |
|
Кванторами у рэгулярных выразах прагныя. Гэта значыць, яны адпавядаюць столькі, колькі яны магчыма. Напэўна, самы просты памылкай, каб у складанні рэгулярных выразаў, каб адпавядаць занадта шмат. Пры выкарыстанні кванторов, вы хочаце, каб адпавядаць усе (правы гатункі) да кропкі, дзе вы хочаце, каб скончыць матч. Але пры выкарыстанні "*", "+" ці лічбавай кванторов, лёгка забыць, што апошні біт вы шукаеце можа адбыцца ў канцы лініі, чым той, які вы зацікавіць |
| Часта, калі вы выявіце, што вашы рэгулярныя выразы адпаведных занадта шмат, карысныя працэдуры перафармуляваць задачу ў розуме. Замест таго каб думаць пра "тое, што я спрабую, каб адпавядаць пазней у выразе? спытайце сябе: "Што мне трэба, каб пазбегнуць ўзгаднення ў наступнай часткі?" Часта гэта прыводзіць да больш эканомнай ўваходжання шаблону. Часта спосаб пазбегнуць карціна выкарыстоўваць дадатак аператара і характар ??класа. Паглядзіце на прыклад, і думаць аб тым, як яна працуе. Хітрасць тут у тым, што існуюць два розных спосабу распрацоўкі амаль той жа паслядоўнасці. Вы можаце думаць, вы хочаце захаваць адпаведнасці пакуль не дойдзе да XYZ, або вы можаце думаць, вы хочаце захаваць адпаведнасці, калі вы атрымаеце XYZ. Гэта некалькі адрозніваецца. Для людзей, якія думалі аб асноўных верагоднасці, той жа схеме адбываецца. Шанец рухомага 6 па памерці ў адзін рулон 1/6. Якая верагоднасць рухомага 6 у шасці рулонаў? Наіўны разлік ставіць шанцы на 1/6 +1/6 +1/6 +1/6 +1/6 +1/6, або 100%. Гэта няправільна, вядома (у канцы канцоў, шанец пасля дванаццаці рулонах не 200%). Правільны разлік "Як пазбегнуць пракаткі 6 у працягу шасці рулонаў?" - Т. е. 5/6 * 5/6 * 5/6 * 5/6 * 5/6 * 5/6, або каля 33%. Шанец атрымаць 6 з'яўляецца такой жа шанец, як не пазбегнуць яго (або каля 66%). На самай справе, калі ўявіць расшыфроўкі серыі косткі рулонах, вы можаце ўжываць рэгулярныя выразы для пісьмовага паведамлення, і аналагічныя мыслення ставіцца. |
Не ўсе інструменты, якія выкарыстоўваюць рэгулярныя выразы дазваляюць змяняць мэтавых радкоў. Некаторыя проста знайсці адпаведнасць шаблоне; асноўным шырока выкарыстоўваюцца рэгулярныя выразы інструмент, верагодна, З інструментаў, якія дазваляюць вам змяняць тэкст перакладу, Ёсць некаторыя адрозненні, каб трымаць у розуме. Тое, як вы на самай справе паказаць замен будзе вар'іравацца паміж інструментаў: тэкставы рэдактар, магчыма, дыялогавае акно, інструменты каманднага радка будзе выкарыстоўваць падзельнікі паміж матч і замены, мовы праграмавання, як правіла, выклікаць функцыі з аргументамі на матч і замены мадэляў. Яшчэ адно важнае адрозненне, каб мець на ўвазе, што становіцца змяненне. Unix-арыентаваных інструментаў каманднага радка звычайна выкарыстоўваюць трубы і STDOUT аб унясенні змяненняў у буферы, а не змяняць файлы на месцы. Выкарыстаньне |
Для мэт гэтага кіраўніцтва, прыклады будуць працягваць выкарыстоўваць Прыклады будзе складацца з мадыфікацыі каманды, радкі ўводу, і лінейны выхад. Лінейны выхад будзе мець ніякіх зменаў падкрэсліў. Акрамя таго, кожны ўваход/выхад лініі будзе папярэднічаць менш чым ці сімвал "больш", каб дапамагчы адрозніць іх (заказ будзе, як апісана таксама), што наводзіць на думку аб перанакіраванні знакаў у абалонках Unix. |
| Давайце паглядзім на пару прыкладаў мадыфікацыі, якія грунтуюцца на тое, што мы ўжо прайшлі. Гэты проста замяняе некаторыя даслоўны тэкст для некаторых іншых даслоўны тэкст. Пошук і замену магчымасць з многіх інструментаў, можна зрабіць шмат, нават без выкарыстання рэгулярных выразаў. |
| Вялікую частку часу, калі вы выкарыстоўваеце рэгулярныя выразы, каб змяніць тэкст перакладу, вы хочаце, каб адпавядаць больш агульныя заканамернасці, чым проста тэкставыя радкі. Усё, што адпавядае тое, што атрымлівае замяніць (нават калі гэта некалькі радкоў у мэта) |
| Гэта прыемна мець магчымасць уставіць фіксаванай радкі ўсюды карціны адбываецца ў тэкст перакладу. Але, шчыра кажучы, рабіць гэта не вельмі залежыць ад кантэксту. Шмат разоў, мы не хочам толькі, каб ўставіць фіксаваныя радкі, а хутчэй, каб ўставіць тое, што нясе значна больш сувязі з адпаведнасцю мадэлі. На шчасце, зваротныя спасылкі прыходзяць да нас на дапамогу тут. Вы можаце выкарыстоўваць зваротныя спасылкі ў шаблёне-матчы сябе, але гэта яшчэ больш карысна мець магчымасць выкарыстоўваць іх у шаблонах замены. З дапамогай замены зваротныя спасылкі, вы можаце абраць з падыходнай мадэлі для выкарыстання толькі часткі вы зацікавіць Для палягчэння чытаема, подвыражения будуць згрупаваны з голымі дужкі (як і Perl), а не бег дужках (як з |
Гэты ўрок ўжо папярэдзіў аб небяспецы адпаведныя занадта шмат з шаблонаў рэгулярных выразаў. Але небяспека настолькі больш сур'ёзным, калі вы робіце змены, што гэта варта паўтарыць. Калі вы заменіце шаблон, які адпавядае большай радкі, чым Вы думалі пра тое, калі Вы напісалі карціну, у вас ёсць патэнцыйна выдаленыя некаторыя важныя дадзеныя ад вашай мэты. Гэта заўсёды добрая ідэя, каб выпрабаваць вашыя рэгулярныя выразы па розных дадзеных мэта, якая з'яўляецца прадстаўніком Вашай прадукцыі выкарыстанне. Пераканайцеся, што вы адпаведнасці, што вы думаеце, што вы адпаведнасці. Бадзяжных квантора або шаблён можна зрабіць дзіўна вялікая разнастайнасць тэкстаў адпавядае таму, што вы думалі, быў пэўным шаблоне. Часам вы проста павінны глядзець на вашу карціну на некаторы час, або знайсці іншы набор вочы, каб высветліць, што адбываецца на самай справе нават пасля таго, вы бачыце, што супадзеньняў. Знаёмства можа пароды пагарда, але і прышчапляе кампетэнцыі. |
Некаторыя вельмі карысныя ўдасканалення, уключаныя ў некаторыя рэгулярныя выразы інструментаў. Гэтыя удасканалення часта робяць складу і падтрымання рэгулярнага выразы значна прасцей. Але праверыць з вашым уласным інструментам, каб убачыць тое, што падтрымліваецца. Мова праграмавання Perl, верагодна, найбольш складаны інструмент для апрацоўкі рэгулярных выразаў, якое шмат у чым тлумачыць яе папулярнасць. Прыклады праілюстраваны будзе выкарыстоўваць Perl-иш код для тлумачэння паняццяў. Іншыя мовы праграмавання, асабліва для іншых моў сцэнарыяў, такіх як Python, маюць аналагічны спектр аксэсуараў. Але ў мэтах ілюстрацыі, па сінтаксісу Perl найбольш блізка адлюстроўвае рэгулярны выраз інструменты Ён будуецца на такіх, як |
| Раней у падручніку, праблемы ўзгаднення занадта шмат абмяркоўваліся, і некаторыя абыходныя шляху былі прапанаваны. Некаторыя прылады рэгулярнага выразы дастаткова добры, каб зрабіць гэта лягчэй, забяспечваючы дадатковы не прагны кванторов. Гэтыя квантор захапіць як мага менш у той жа час адпаведнасць усё, што прыходзіць у наступны шаблён (замест як мага больш). Не прагны кванторы маюць той жа сінтаксіс рэгулярных прагныя з іх, акрамя як з квантором варта знак пытання. Напрыклад, не прагны карціна можа выглядаць наступным чынам: " Адна маленькая рэч, каб паглядзець за тое, што карціна " |
| Мы ўжо бачылі адзін шаблон-матч мадыфікатара ў мадыфікацыі прыклады: г ЛОБАЛЬНЫЕ мадыфікатара. У самой справе, у многіх рэгулярных інструменты выразы, мы павінны былі выкарыстаць "г" мадыфікатар для ўсіх нашых шаблону. Без "г", шмат інструментаў будзе адпавядаць толькі першае ўваходжанне ўзор на лініі ў мэта. Так што гэта карысна мадыфікатара (але не той, які вы абавязкова жадаеце выкарыстоўваць заўсёды). Давайце паглядзім на некаторыя іншыя. Як мала мнеманічна, прыемна ўспомніць слова "Gismo" (нават здаецца, як-то неабходнасці). Найбольш частымі мадыфікатары:
O опцыя ажыццяўлення аптымізацыі, а на самой справе не чарговы выпуск выраз (але гэта дапамагае мнеманічна). Ингл-радка S дазваляе шаблон, каб адпавядаць новай радкі (ён будзе не інакш). Ultiple-м радка прычын "^" і "$", каб адпавядаць пачатку і заканчэння кожнай радкі ў мэтавы, а не толькі пачатак/канец мэты ў цэлым (з |
| Backreferencing у шаблонах замены з'яўляецца вельмі магутным, але гэта таксама просты ў выкарыстанні больш дзевяці груп у складанае рэгулярнае выраз. Цалкам незалежна ад выкарыстання да даступных імёнаў зваротнай спасылкі, часта больш пераборлівым для абазначэння часткі замены шаблону ў паслядоўным парадку. Каб справіцца з гэтым пытаннем, некаторыя рэгулярныя выразы прылады дазваляюць "групоўкі без backreferencing". Групы, якія не павінны таксама разглядацца як зваротная спасылка мае пытальнік двукроп'я ў пачатку групы, як і ў " |
| Мова Python прапануе асабліва зручна сінтаксіс сапраўды складаны зваротныя карціны. Замест таго каб проста гуляць з нумарацыя адпавядае груп, вы можаце даць ім назву. Сінтаксіс з выкарыстаннем рэгулярных выразаў у Python з'яўляецца стандартнай функцыяй мовы праграмавання/метад стыль размовы, а не Perl-або |
| Яшчэ адна выкрут перадавых інструментаў рэгулярнага выразы "Сцвярджэнні датычна наступнага тэксту." Яны падобныя на звычайныя згрупаваныя подвыражения, калі не на самай справе не схапіць тое, што яны супадаюць. Ёсць два перавагі выкарыстання Сцвярджэнні датычна наступнага тэксту. З аднаго боку, перадпрагляд сцвярджэнне можа функцыянаваць такім жа чынам, каб групу, якая не backreferenced, гэта значыць, вы можаце супаставіць што-то, не лічачы, у зваротных спасылак. Аднак больш важна тое, перадпрагляд сцвярджэнне можна паказаць, што наступны кавалак карціна мае пэўную форму, але хай розных подвыражения фактычна захапіць яго (як правіла, для мэт backreferencing, што іншыя выразы. Ёсць два віды прагляду наперад сцвярджэнні: станоўчыя і адмоўныя. Як і варта было чакаць, станоўчыя зацвярджэння паказвае, што нешта прыйдзе наступны, і адмоўны паказвае, што нешта не далей. Падкрэсліваючы іх сувязь з няўрадавымі арганізацыямі, backreferenced груп, сінтаксіс для прагляду наперад сцвярджэнні аб тым жа: |
|