CINXE.COM

Expressão regular – Wikipédia, a enciclopédia livre

<!doctype html> <html class="client-nojs skin-theme-clientpref-day mf-expand-sections-clientpref-0 mf-font-size-clientpref-small mw-mf-amc-clientpref-0" lang="pt" dir="ltr"> <head> <base href="https://pt.m.wikipedia.org/wiki/Express%C3%A3o_regular"> <meta charset="UTF-8"> <title>Expressão regular – Wikipédia, a enciclopédia livre</title> <script>(function(){var className="client-js skin-theme-clientpref-day mf-expand-sections-clientpref-0 mf-font-size-clientpref-small mw-mf-amc-clientpref-0";var cookie=document.cookie.match(/(?:^|; )ptwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"wgRequestId":"784705db-9b2c-409b-8f37-59b7502d47f1","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Expressão_regular","wgTitle":"Expressão regular","wgCurRevisionId":67928626,"wgRevisionId":67928626, "wgArticleId":754,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgPageViewLanguage":"pt","wgPageContentLanguage":"pt","wgPageContentModel":"wikitext","wgRelevantPageName":"Expressão_regular","wgRelevantArticleId":754,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"pt","pageLanguageDir":"ltr","pageVariantFallbacks":"pt"},"wgMFMode":"stable","wgMFAmc":false,"wgMFAmcOutreachActive":false,"wgMFAmcOutreachUserEligible":false,"wgMFLazyLoadImages":true,"wgMFEditNoticesFeatureConflict":false,"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgMFIsSupportedEditRequest":true,"wgMFScriptPath":"","wgWMESchemaEditAttemptStepOversample":false, "wgWMEPageLength":40000,"wgRelatedArticlesCompat":[],"wgEditSubmitButtonLabelPublish":true,"wgSectionTranslationMissingLanguages":[{"lang":"ace","autonym":"Acèh","dir":"ltr"},{"lang":"ady","autonym":"адыгабзэ","dir":"ltr"},{"lang":"alt","autonym":"алтай тил","dir":"ltr"},{"lang":"am","autonym":"አማርኛ","dir":"ltr"},{"lang":"ami","autonym":"Pangcah","dir":"ltr"},{"lang":"an","autonym":"aragonés","dir":"ltr"},{"lang":"ang","autonym":"Ænglisc","dir":"ltr"},{"lang":"ann","autonym":"Obolo","dir":"ltr"},{"lang":"anp","autonym":"अंगिका","dir":"ltr"},{"lang":"ary","autonym":"الدارجة","dir":"rtl"},{"lang":"arz","autonym":"مصرى","dir":"rtl"},{"lang":"as","autonym":"অসমীয়া","dir":"ltr"},{"lang":"ast","autonym":"asturianu","dir":"ltr"},{"lang":"av","autonym":"авар","dir":"ltr"},{"lang":"avk","autonym":"Kotava","dir":"ltr"},{"lang":"awa","autonym":"अवधी","dir":"ltr"},{"lang":"ay","autonym":"Aymar aru","dir":"ltr"},{"lang": "azb","autonym":"تۆرکجه","dir":"rtl"},{"lang":"ba","autonym":"башҡортса","dir":"ltr"},{"lang":"ban","autonym":"Basa Bali","dir":"ltr"},{"lang":"bbc","autonym":"Batak Toba","dir":"ltr"},{"lang":"bcl","autonym":"Bikol Central","dir":"ltr"},{"lang":"bdr","autonym":"Bajau Sama","dir":"ltr"},{"lang":"be","autonym":"беларуская","dir":"ltr"},{"lang":"bew","autonym":"Betawi","dir":"ltr"},{"lang":"bho","autonym":"भोजपुरी","dir":"ltr"},{"lang":"bi","autonym":"Bislama","dir":"ltr"},{"lang":"bjn","autonym":"Banjar","dir":"ltr"},{"lang":"blk","autonym":"ပအိုဝ်ႏဘာႏသာႏ","dir":"ltr"},{"lang":"bm","autonym":"bamanankan","dir":"ltr"},{"lang":"bo","autonym":"བོད་ཡིག","dir":"ltr"},{"lang":"bpy","autonym":"বিষ্ণুপ্রিয়া মণিপুরী","dir":"ltr"},{"lang":"br","autonym":"brezhoneg","dir":"ltr"},{"lang":"bs","autonym":"bosanski","dir":"ltr"},{"lang":"btm","autonym":"Batak Mandailing","dir":"ltr"} ,{"lang":"bug","autonym":"Basa Ugi","dir":"ltr"},{"lang":"cdo","autonym":"閩東語 / Mìng-dĕ̤ng-ngṳ̄","dir":"ltr"},{"lang":"ce","autonym":"нохчийн","dir":"ltr"},{"lang":"ceb","autonym":"Cebuano","dir":"ltr"},{"lang":"ch","autonym":"Chamoru","dir":"ltr"},{"lang":"chr","autonym":"ᏣᎳᎩ","dir":"ltr"},{"lang":"ckb","autonym":"کوردی","dir":"rtl"},{"lang":"co","autonym":"corsu","dir":"ltr"},{"lang":"cr","autonym":"Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ","dir":"ltr"},{"lang":"crh","autonym":"qırımtatarca","dir":"ltr"},{"lang":"cu","autonym":"словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ","dir":"ltr"},{"lang":"cy","autonym":"Cymraeg","dir":"ltr"},{"lang":"dag","autonym":"dagbanli","dir":"ltr"},{"lang":"dga","autonym":"Dagaare","dir":"ltr"},{"lang":"din","autonym":"Thuɔŋjäŋ","dir":"ltr"},{"lang":"diq","autonym":"Zazaki","dir":"ltr"},{"lang":"dsb","autonym":"dolnoserbski","dir":"ltr"},{"lang":"dtp","autonym":"Kadazandusun","dir":"ltr"},{"lang":"dv","autonym": "ދިވެހިބަސް","dir":"rtl"},{"lang":"dz","autonym":"ཇོང་ཁ","dir":"ltr"},{"lang":"ee","autonym":"eʋegbe","dir":"ltr"},{"lang":"eml","autonym":"emiliàn e rumagnòl","dir":"ltr"},{"lang":"fat","autonym":"mfantse","dir":"ltr"},{"lang":"ff","autonym":"Fulfulde","dir":"ltr"},{"lang":"fj","autonym":"Na Vosa Vakaviti","dir":"ltr"},{"lang":"fo","autonym":"føroyskt","dir":"ltr"},{"lang":"fon","autonym":"fɔ̀ngbè","dir":"ltr"},{"lang":"frp","autonym":"arpetan","dir":"ltr"},{"lang":"frr","autonym":"Nordfriisk","dir":"ltr"},{"lang":"fur","autonym":"furlan","dir":"ltr"},{"lang":"fy","autonym":"Frysk","dir":"ltr"},{"lang":"gag","autonym":"Gagauz","dir":"ltr"},{"lang":"gan","autonym":"贛語","dir":"ltr"},{"lang":"gcr","autonym":"kriyòl gwiyannen","dir":"ltr"},{"lang":"glk","autonym":"گیلکی","dir":"rtl"},{"lang":"gn","autonym":"Avañe'ẽ","dir":"ltr"},{"lang":"gom","autonym":"गोंयची कोंकणी / Gõychi Konknni","dir":"ltr"},{"lang":"gor","autonym": "Bahasa Hulontalo","dir":"ltr"},{"lang":"gpe","autonym":"Ghanaian Pidgin","dir":"ltr"},{"lang":"gu","autonym":"ગુજરાતી","dir":"ltr"},{"lang":"guc","autonym":"wayuunaiki","dir":"ltr"},{"lang":"gur","autonym":"farefare","dir":"ltr"},{"lang":"guw","autonym":"gungbe","dir":"ltr"},{"lang":"gv","autonym":"Gaelg","dir":"ltr"},{"lang":"ha","autonym":"Hausa","dir":"ltr"},{"lang":"hak","autonym":"客家語 / Hak-kâ-ngî","dir":"ltr"},{"lang":"haw","autonym":"Hawaiʻi","dir":"ltr"},{"lang":"hif","autonym":"Fiji Hindi","dir":"ltr"},{"lang":"hsb","autonym":"hornjoserbsce","dir":"ltr"},{"lang":"ht","autonym":"Kreyòl ayisyen","dir":"ltr"},{"lang":"hyw","autonym":"Արեւմտահայերէն","dir":"ltr"},{"lang":"ia","autonym":"interlingua","dir":"ltr"},{"lang":"iba","autonym":"Jaku Iban","dir":"ltr"},{"lang":"ie","autonym":"Interlingue","dir":"ltr"},{"lang":"ig","autonym":"Igbo","dir":"ltr"},{"lang":"igl","autonym":"Igala","dir":"ltr"},{"lang":"ilo","autonym":"Ilokano","dir":"ltr"}, {"lang":"io","autonym":"Ido","dir":"ltr"},{"lang":"iu","autonym":"ᐃᓄᒃᑎᑐᑦ / inuktitut","dir":"ltr"},{"lang":"jam","autonym":"Patois","dir":"ltr"},{"lang":"jv","autonym":"Jawa","dir":"ltr"},{"lang":"kaa","autonym":"Qaraqalpaqsha","dir":"ltr"},{"lang":"kab","autonym":"Taqbaylit","dir":"ltr"},{"lang":"kbd","autonym":"адыгэбзэ","dir":"ltr"},{"lang":"kbp","autonym":"Kabɩyɛ","dir":"ltr"},{"lang":"kcg","autonym":"Tyap","dir":"ltr"},{"lang":"kg","autonym":"Kongo","dir":"ltr"},{"lang":"kge","autonym":"Kumoring","dir":"ltr"},{"lang":"ki","autonym":"Gĩkũyũ","dir":"ltr"},{"lang":"kk","autonym":"қазақша","dir":"ltr"},{"lang":"kl","autonym":"kalaallisut","dir":"ltr"},{"lang":"km","autonym":"ភាសាខ្មែរ","dir":"ltr"},{"lang":"kn","autonym":"ಕನ್ನಡ","dir":"ltr"},{"lang":"koi","autonym":"перем коми","dir":"ltr"},{"lang":"krc","autonym":"къарачай-малкъар","dir":"ltr"},{"lang":"ks","autonym":"कॉशुर / کٲشُر", "dir":"rtl"},{"lang":"ku","autonym":"kurdî","dir":"ltr"},{"lang":"kus","autonym":"Kʋsaal","dir":"ltr"},{"lang":"kv","autonym":"коми","dir":"ltr"},{"lang":"kw","autonym":"kernowek","dir":"ltr"},{"lang":"lad","autonym":"Ladino","dir":"ltr"},{"lang":"lb","autonym":"Lëtzebuergesch","dir":"ltr"},{"lang":"lez","autonym":"лезги","dir":"ltr"},{"lang":"lg","autonym":"Luganda","dir":"ltr"},{"lang":"li","autonym":"Limburgs","dir":"ltr"},{"lang":"lij","autonym":"Ligure","dir":"ltr"},{"lang":"lld","autonym":"Ladin","dir":"ltr"},{"lang":"lmo","autonym":"lombard","dir":"ltr"},{"lang":"ln","autonym":"lingála","dir":"ltr"},{"lang":"lo","autonym":"ລາວ","dir":"ltr"},{"lang":"lt","autonym":"lietuvių","dir":"ltr"},{"lang":"ltg","autonym":"latgaļu","dir":"ltr"},{"lang":"mad","autonym":"Madhurâ","dir":"ltr"},{"lang":"mai","autonym":"मैथिली","dir":"ltr"},{"lang":"map-bms","autonym":"Basa Banyumasan","dir":"ltr"},{"lang":"mdf","autonym":"мокшень","dir":"ltr"},{"lang": "mg","autonym":"Malagasy","dir":"ltr"},{"lang":"mhr","autonym":"олык марий","dir":"ltr"},{"lang":"mi","autonym":"Māori","dir":"ltr"},{"lang":"min","autonym":"Minangkabau","dir":"ltr"},{"lang":"mn","autonym":"монгол","dir":"ltr"},{"lang":"mni","autonym":"ꯃꯤꯇꯩ ꯂꯣꯟ","dir":"ltr"},{"lang":"mnw","autonym":"ဘာသာမန်","dir":"ltr"},{"lang":"mos","autonym":"moore","dir":"ltr"},{"lang":"mr","autonym":"मराठी","dir":"ltr"},{"lang":"mrj","autonym":"кырык мары","dir":"ltr"},{"lang":"ms","autonym":"Bahasa Melayu","dir":"ltr"},{"lang":"mt","autonym":"Malti","dir":"ltr"},{"lang":"my","autonym":"မြန်မာဘာသာ","dir":"ltr"},{"lang":"myv","autonym":"эрзянь","dir":"ltr"},{"lang":"mzn","autonym":"مازِرونی","dir":"rtl"},{"lang":"nah","autonym":"Nāhuatl","dir":"ltr"},{"lang":"nan","autonym":"閩南語 / Bân-lâm-gú","dir":"ltr"},{"lang":"nap","autonym":"Napulitano","dir":"ltr"},{"lang":"nb","autonym":"norsk bokmål" ,"dir":"ltr"},{"lang":"nds","autonym":"Plattdüütsch","dir":"ltr"},{"lang":"nds-nl","autonym":"Nedersaksies","dir":"ltr"},{"lang":"ne","autonym":"नेपाली","dir":"ltr"},{"lang":"new","autonym":"नेपाल भाषा","dir":"ltr"},{"lang":"nia","autonym":"Li Niha","dir":"ltr"},{"lang":"nn","autonym":"norsk nynorsk","dir":"ltr"},{"lang":"nqo","autonym":"ߒߞߏ","dir":"rtl"},{"lang":"nr","autonym":"isiNdebele seSewula","dir":"ltr"},{"lang":"nso","autonym":"Sesotho sa Leboa","dir":"ltr"},{"lang":"ny","autonym":"Chi-Chewa","dir":"ltr"},{"lang":"oc","autonym":"occitan","dir":"ltr"},{"lang":"om","autonym":"Oromoo","dir":"ltr"},{"lang":"or","autonym":"ଓଡ଼ିଆ","dir":"ltr"},{"lang":"os","autonym":"ирон","dir":"ltr"},{"lang":"pa","autonym":"ਪੰਜਾਬੀ","dir":"ltr"},{"lang":"pag","autonym":"Pangasinan","dir":"ltr"},{"lang":"pam","autonym":"Kapampangan","dir":"ltr"},{"lang":"pap","autonym":"Papiamentu","dir":"ltr"},{"lang":"pcd","autonym":"Picard","dir":"ltr"} ,{"lang":"pcm","autonym":"Naijá","dir":"ltr"},{"lang":"pdc","autonym":"Deitsch","dir":"ltr"},{"lang":"pms","autonym":"Piemontèis","dir":"ltr"},{"lang":"ps","autonym":"پښتو","dir":"rtl"},{"lang":"pwn","autonym":"pinayuanan","dir":"ltr"},{"lang":"qu","autonym":"Runa Simi","dir":"ltr"},{"lang":"rm","autonym":"rumantsch","dir":"ltr"},{"lang":"rn","autonym":"ikirundi","dir":"ltr"},{"lang":"rsk","autonym":"руски","dir":"ltr"},{"lang":"rue","autonym":"русиньскый","dir":"ltr"},{"lang":"rup","autonym":"armãneashti","dir":"ltr"},{"lang":"rw","autonym":"Ikinyarwanda","dir":"ltr"},{"lang":"sa","autonym":"संस्कृतम्","dir":"ltr"},{"lang":"sah","autonym":"саха тыла","dir":"ltr"},{"lang":"sat","autonym":"ᱥᱟᱱᱛᱟᱲᱤ","dir":"ltr"},{"lang":"sc","autonym":"sardu","dir":"ltr"},{"lang":"scn","autonym":"sicilianu","dir":"ltr"},{"lang":"sco","autonym":"Scots","dir":"ltr"},{"lang":"sd","autonym":"سنڌي","dir":"rtl"},{"lang":"se","autonym": "davvisámegiella","dir":"ltr"},{"lang":"sg","autonym":"Sängö","dir":"ltr"},{"lang":"sgs","autonym":"žemaitėška","dir":"ltr"},{"lang":"sh","autonym":"srpskohrvatski / српскохрватски","dir":"ltr"},{"lang":"shi","autonym":"Taclḥit","dir":"ltr"},{"lang":"shn","autonym":"ၽႃႇသႃႇတႆး ","dir":"ltr"},{"lang":"si","autonym":"සිංහල","dir":"ltr"},{"lang":"skr","autonym":"سرائیکی","dir":"rtl"},{"lang":"sm","autonym":"Gagana Samoa","dir":"ltr"},{"lang":"smn","autonym":"anarâškielâ","dir":"ltr"},{"lang":"sn","autonym":"chiShona","dir":"ltr"},{"lang":"so","autonym":"Soomaaliga","dir":"ltr"},{"lang":"srn","autonym":"Sranantongo","dir":"ltr"},{"lang":"ss","autonym":"SiSwati","dir":"ltr"},{"lang":"st","autonym":"Sesotho","dir":"ltr"},{"lang":"stq","autonym":"Seeltersk","dir":"ltr"},{"lang":"su","autonym":"Sunda","dir":"ltr"},{"lang":"sw","autonym":"Kiswahili","dir":"ltr"},{"lang":"szl","autonym":"ślůnski","dir":"ltr"},{"lang":"tay","autonym": "Tayal","dir":"ltr"},{"lang":"tcy","autonym":"ತುಳು","dir":"ltr"},{"lang":"tdd","autonym":"ᥖᥭᥰ ᥖᥬᥲ ᥑᥨᥒᥰ","dir":"ltr"},{"lang":"te","autonym":"తెలుగు","dir":"ltr"},{"lang":"tet","autonym":"tetun","dir":"ltr"},{"lang":"tg","autonym":"тоҷикӣ","dir":"ltr"},{"lang":"ti","autonym":"ትግርኛ","dir":"ltr"},{"lang":"tk","autonym":"Türkmençe","dir":"ltr"},{"lang":"tl","autonym":"Tagalog","dir":"ltr"},{"lang":"tly","autonym":"tolışi","dir":"ltr"},{"lang":"tn","autonym":"Setswana","dir":"ltr"},{"lang":"to","autonym":"lea faka-Tonga","dir":"ltr"},{"lang":"tpi","autonym":"Tok Pisin","dir":"ltr"},{"lang":"trv","autonym":"Seediq","dir":"ltr"},{"lang":"ts","autonym":"Xitsonga","dir":"ltr"},{"lang":"tt","autonym":"татарча / tatarça","dir":"ltr"},{"lang":"tum","autonym":"chiTumbuka","dir":"ltr"},{"lang":"tw","autonym":"Twi","dir":"ltr"},{"lang":"ty","autonym":"reo tahiti","dir":"ltr"},{"lang":"tyv","autonym":"тыва дыл","dir":"ltr"},{ "lang":"udm","autonym":"удмурт","dir":"ltr"},{"lang":"uz","autonym":"oʻzbekcha / ўзбекча","dir":"ltr"},{"lang":"ve","autonym":"Tshivenda","dir":"ltr"},{"lang":"vec","autonym":"vèneto","dir":"ltr"},{"lang":"vep","autonym":"vepsän kel’","dir":"ltr"},{"lang":"vls","autonym":"West-Vlams","dir":"ltr"},{"lang":"vo","autonym":"Volapük","dir":"ltr"},{"lang":"vro","autonym":"võro","dir":"ltr"},{"lang":"war","autonym":"Winaray","dir":"ltr"},{"lang":"wo","autonym":"Wolof","dir":"ltr"},{"lang":"xal","autonym":"хальмг","dir":"ltr"},{"lang":"xh","autonym":"isiXhosa","dir":"ltr"},{"lang":"xmf","autonym":"მარგალური","dir":"ltr"},{"lang":"yi","autonym":"ייִדיש","dir":"rtl"},{"lang":"yo","autonym":"Yorùbá","dir":"ltr"},{"lang":"yue","autonym":"粵語","dir":"ltr"},{"lang":"za","autonym":"Vahcuengh","dir":"ltr"},{"lang":"zgh","autonym":"ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ","dir":"ltr"},{"lang":"zu","autonym":"isiZulu","dir":"ltr"}], "wgSectionTranslationTargetLanguages":["ace","ady","alt","am","ami","an","ang","ann","anp","ar","ary","arz","as","ast","av","avk","awa","ay","az","azb","ba","ban","bar","bbc","bcl","bdr","be","bew","bg","bho","bi","bjn","blk","bm","bn","bo","bpy","br","bs","btm","bug","ca","cdo","ce","ceb","ch","chr","ckb","co","cr","crh","cs","cu","cy","da","dag","de","dga","din","diq","dsb","dtp","dv","dz","ee","el","eml","eo","es","et","eu","fa","fat","ff","fi","fj","fo","fon","fr","frp","frr","fur","fy","gag","gan","gcr","gl","glk","gn","gom","gor","gpe","gu","guc","gur","guw","gv","ha","hak","haw","he","hi","hif","hr","hsb","ht","hu","hy","hyw","ia","iba","ie","ig","igl","ilo","io","is","it","iu","ja","jam","jv","ka","kaa","kab","kbd","kbp","kcg","kg","kge","ki","kk","kl","km","kn","ko","koi","krc","ks","ku","kus","kv","kw","ky","lad","lb","lez","lg","li","lij","lld","lmo","ln","lo","lt","ltg","lv","mad","mai","map-bms","mdf","mg","mhr","mi","min","mk","ml","mn","mni","mnw","mos","mr","mrj","ms", "mt","mwl","my","myv","mzn","nah","nan","nap","nb","nds","nds-nl","ne","new","nia","nl","nn","nqo","nr","nso","ny","oc","om","or","os","pa","pag","pam","pap","pcd","pcm","pdc","pl","pms","pnb","ps","pt","pwn","qu","rm","rn","ro","rsk","rue","rup","rw","sa","sah","sat","sc","scn","sco","sd","se","sg","sgs","sh","shi","shn","si","sk","skr","sl","sm","smn","sn","so","sq","sr","srn","ss","st","stq","su","sv","sw","szl","ta","tay","tcy","tdd","te","tet","tg","th","ti","tk","tl","tly","tn","to","tpi","tr","trv","ts","tt","tum","tw","ty","tyv","udm","ur","uz","ve","vec","vep","vi","vls","vo","vro","wa","war","wo","wuu","xal","xh","xmf","yi","yo","yue","za","zgh","zh","zu"],"isLanguageSearcherCXEntrypointEnabled":true,"mintEntrypointLanguages":["ace","ast","azb","bcl","bjn","bh","crh","ff","fon","ig","is","ki","ks","lmo","min","sat","ss","tn","vec"],"wgWikibaseItemId":"Q185612","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform" ,"platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":true,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false,"wgMinervaPermissions":{"watchable":true,"watch":false},"wgMinervaFeatures":{"beta":false,"donate":true,"mobileOptionsLink":true,"categories":false,"pageIssues":true,"talkAtTop":false,"historyInPageActions":false,"overflowSubmenu":false,"tabsOnSpecials":true,"personalMenu":false,"mainMenuExpanded":false,"echo":true,"nightMode":true},"wgMinervaDownloadNamespaces":[0],"wgSiteNoticeId":"2.30"};RLSTATE={"ext.gadget.FeedbackHighlight-base":"ready","ext.gadget.keepPDU":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.math.styles":"ready","skins.minerva.styles":"ready","skins.minerva.content.styles.images":"ready","mediawiki.hlist":"ready", "skins.minerva.codex.styles":"ready","skins.minerva.icons":"ready","ext.wikimediamessages.styles":"ready","mobile.init.styles":"ready","ext.relatedArticles.styles":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready","ext.dismissableSiteNotice.styles":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","mediawiki.page.media","site","mediawiki.page.ready","skins.minerva.scripts","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.Topicon","ext.gadget.Metacaixa","ext.gadget.TitleRewrite","ext.gadget.ElementosOcultaveis","ext.gadget.FeedbackHighlight","ext.gadget.NewVillagePump","ext.gadget.wikibugs","ext.gadget.charinsert","ext.gadget.requestForAdminship","ext.gadget.WikiMiniAtlas","ext.gadget.PagesForDeletion","ext.urlShortener.toolbar","ext.centralauth.centralautologin","ext.popups","mobile.init","ext.echo.centralauth","ext.relatedArticles.readMore.bootstrap","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.cx.eventlogging.campaigns", "ext.cx.entrypoints.mffrequentlanguages","ext.cx.entrypoints.languagesearcher.init","mw.externalguidance.init","ext.checkUser.clientHints","ext.quicksurveys.init","ext.growthExperiments.SuggestedEditSession","oojs-ui.styles.icons-media","oojs-ui-core.icons","ext.dismissableSiteNotice"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=pt&amp;modules=ext.cite.styles%7Cext.dismissableSiteNotice.styles%7Cext.math.styles%7Cext.relatedArticles.styles%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cmediawiki.hlist%7Cmobile.init.styles%7Cskins.minerva.codex.styles%7Cskins.minerva.content.styles.images%7Cskins.minerva.icons%2Cstyles%7Cwikibase.client.init&amp;only=styles&amp;skin=minerva"> <script async src="/w/load.php?lang=pt&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=minerva"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=pt&amp;modules=ext.gadget.FeedbackHighlight-base%2CkeepPDU&amp;only=styles&amp;skin=minerva"> <link rel="stylesheet" href="/w/load.php?lang=pt&amp;modules=site.styles&amp;only=styles&amp;skin=minerva"> <meta name="generator" content="MediaWiki 1.44.0-wmf.6"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="theme-color" content="#eaecf0"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/c/c6/Regular_expression_example.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="692"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/c/c6/Regular_expression_example.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="462"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Regular_expression_example.png/640px-Regular_expression_example.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="369"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=0.25, maximum-scale=5.0"> <meta property="og:title" content="Expressão regular – Wikipédia, a enciclopédia livre"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="manifest" href="/w/api.php?action=webapp-manifest"> <link rel="alternate" type="application/x-wiki" title="Editar" href="/w/index.php?title=Express%C3%A3o_regular&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipédia (pt)"> <link rel="EditURI" type="application/rsd+xml" href="//pt.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://pt.wikipedia.org/wiki/Express%C3%A3o_regular"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.pt"> <link rel="dns-prefetch" href="//meta.wikimedia.org"> <link rel="dns-prefetch" href="login.wikimedia.org"> <meta http-equiv="X-Translated-By" content="Google"> <meta http-equiv="X-Translated-To" content="en"> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.SDZVnIGteOc.O/am=DAY/d=1/rs=AN8SPfpg5c7Ir1xu4O4UYB2MrBzTy-7gWA/m=corsproxy" data-sourceurl="https://pt.m.wikipedia.org/wiki/Express%C3%A3o_regular"></script> <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" rel="stylesheet"> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.SDZVnIGteOc.O/am=DAY/d=1/exm=corsproxy/ed=1/rs=AN8SPfpg5c7Ir1xu4O4UYB2MrBzTy-7gWA/m=phishing_protection" data-phishing-protection-enabled="false" data-forms-warning-enabled="true" data-source-url="https://pt.m.wikipedia.org/wiki/Express%C3%A3o_regular"></script> <meta name="robots" content="none"> </head> <body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Expressão_regular rootpage-Expressão_regular stable issues-group-B skin-minerva action-view skin--responsive mw-mf-amc-disabled mw-mf"> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.SDZVnIGteOc.O/am=DAY/d=1/exm=corsproxy,phishing_protection/ed=1/rs=AN8SPfpg5c7Ir1xu4O4UYB2MrBzTy-7gWA/m=navigationui" data-environment="prod" data-proxy-url="https://pt-m-wikipedia-org.translate.goog" data-proxy-full-url="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-source-url="https://pt.m.wikipedia.org/wiki/Express%C3%A3o_regular" data-source-language="auto" data-target-language="en" data-display-language="en-GB" data-detected-source-language="pt-PT" data-is-source-untranslated="false" data-source-untranslated-url="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://pt.m.wikipedia.org/wiki/Express%25C3%25A3o_regular&amp;anno=2" data-client="tr"></script> <div id="mw-mf-viewport"> <div id="mw-mf-page-center"><a class="mw-mf-page-center__mask" href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#"></a> <header class="header-container header-chrome"> <div class="minerva-header"> <nav class="navigation-drawer toggle-list view-border-box"><input type="checkbox" id="main-menu-input" class="toggle-list__checkbox" role="button" aria-haspopup="true" aria-expanded="false" aria-labelledby="mw-mf-main-menu-button"> <label role="button" for="main-menu-input" id="mw-mf-main-menu-button" aria-hidden="true" data-event-name="ui.mainmenu" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet toggle-list__toggle"> <span class="minerva-icon minerva-icon--menu"></span> <span></span> </label> <div id="mw-mf-page-left" class="menu view-border-box"> <ul id="p-navigation" class="toggle-list__list"> <li class="toggle-list-item "><a class="toggle-list-item__anchor menu__item--home" href="https://pt-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:P%C3%A1gina_principal?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-mw="interface"> <span class="minerva-icon minerva-icon--home"></span> <span class="toggle-list-item__label">Início</span> </a></li> <li class="toggle-list-item "><a class="toggle-list-item__anchor menu__item--random" href="https://pt-m-wikipedia-org.translate.goog/wiki/Especial:Aleat%C3%B3ria?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-mw="interface"> <span class="minerva-icon minerva-icon--die"></span> <span class="toggle-list-item__label">Aleatório</span> </a></li> <li class="toggle-list-item skin-minerva-list-item-jsonly"><a class="toggle-list-item__anchor menu__item--nearby" href="https://pt-m-wikipedia-org.translate.goog/wiki/Especial:Nearby?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-event-name="menu.nearby" data-mw="interface"> <span class="minerva-icon minerva-icon--mapPin"></span> <span class="toggle-list-item__label">Aqui perto</span> </a></li> </ul> <ul id="p-personal" class="toggle-list__list"> <li class="toggle-list-item "><a class="toggle-list-item__anchor menu__item--login" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Especial:Entrar&amp;returnto=Express%C3%A3o+regular&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-event-name="menu.login" data-mw="interface"> <span class="minerva-icon minerva-icon--logIn"></span> <span class="toggle-list-item__label">Entrar</span> </a></li> </ul> <ul id="pt-preferences" class="toggle-list__list"> <li class="toggle-list-item skin-minerva-list-item-jsonly"><a class="toggle-list-item__anchor menu__item--settings" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Especial:MobileOptions&amp;returnto=Express%C3%A3o+regular&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-event-name="menu.settings" data-mw="interface"> <span class="minerva-icon minerva-icon--settings"></span> <span class="toggle-list-item__label">Definições</span> </a></li> </ul> <ul id="p-donation" class="toggle-list__list"> <li class="toggle-list-item "><a class="toggle-list-item__anchor menu__item--donate" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://donate.wikimedia.org/?wmf_source%3Ddonate%26wmf_medium%3Dsidebar%26wmf_campaign%3Dpt.wikipedia.org%26uselang%3Dpt%26wmf_key%3Dminerva" data-event-name="menu.donate" data-mw="interface"> <span class="minerva-icon minerva-icon--heart"></span> <span class="toggle-list-item__label">Donativos</span> </a></li> </ul> <ul class="hlist"> <li class="toggle-list-item "><a class="toggle-list-item__anchor menu__item--about" href="https://pt-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Sobre?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-mw="interface"> <span class="toggle-list-item__label">Sobre a Wikipédia</span> </a></li> <li class="toggle-list-item "><a class="toggle-list-item__anchor menu__item--disclaimers" href="https://pt-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Aviso_geral?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-mw="interface"> <span class="toggle-list-item__label">Avisos gerais</span> </a></li> </ul> </div><label class="main-menu-mask" for="main-menu-input"></label> </nav> <div class="branding-box"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:P%C3%A1gina_principal?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB"> <span><img src="/static/images/mobile/copyright/wikipedia-wordmark-fr.svg" alt="Wikipédia" width="119" height="18" style="width: 7.4375em; height: 1.125em;"> </span> </a> </div> <form action="/w/index.php" method="get" class="minerva-search-form"> <div class="search-box"><input type="hidden" name="title" value="Especial:Pesquisar"> <input class="search skin-minerva-search-trigger" id="searchInput" type="search" name="search" placeholder="Pesquisar na Wikipédia" aria-label="Pesquisar na Wikipédia" autocapitalize="sentences" title="Pesquisar na Wikipédia [f]" accesskey="f"> <span class="search-box-icon-overlay"><span class="minerva-icon minerva-icon--search"></span> </span> </div><button id="searchIcon" class="cdx-button cdx-button--size-large cdx-button--icon-only cdx-button--weight-quiet skin-minerva-search-trigger"> <span class="minerva-icon minerva-icon--search"></span> <span>Pesquisar</span> </button> </form> <nav class="minerva-user-navigation" aria-label="Navegação do utilizador"> </nav> </div> </header> <main id="content" class="mw-body"> <div class="banner-container"> <div id="siteNotice"></div> </div> <div class="pre-content heading-holder"> <div class="page-heading"> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Expressão regular</span></h1> <div class="tagline"></div> </div> <nav class="page-actions-menu"> <ul id="p-views" class="page-actions-menu__list"> <li id="language-selector" class="page-actions-menu__list-item"><a role="button" href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#p-lang" data-mw="interface" data-event-name="menu.languages" title="Língua" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet language-selector"> <span class="minerva-icon minerva-icon--language"></span> <span>Língua</span> </a></li> <li id="page-actions-watch" class="page-actions-menu__list-item"><a role="button" id="ca-watch" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Especial:Entrar&amp;returnto=Express%C3%A3o+regular&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-event-name="menu.watch" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet menu__item--page-actions-watch"> <span class="minerva-icon minerva-icon--star"></span> <span>Vigiar</span> </a></li> <li id="page-actions-edit" class="page-actions-menu__list-item"><a role="button" id="ca-edit" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" data-event-name="menu.edit" data-mw="interface" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet edit-page menu__item--page-actions-edit"> <span class="minerva-icon minerva-icon--edit"></span> <span>Editar</span> </a></li> </ul> </nav><!-- version 1.0.2 (change every time you update a partial) --> <div id="mw-content-subtitle"></div> </div> <div id="bodyContent" class="content"> <div id="mw-content-text" class="mw-body-content"> <script>function mfTempOpenSection(id){var block=document.getElementById("mf-section-"+id);block.className+=" open-block";block.previousSibling.className+=" open-block";}</script> <div class="mw-content-ltr mw-parser-output" lang="pt" dir="ltr"> <section class="mf-section-0" id="mf-section-0"> <p>Em <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ci%C3%AAncia_da_computa%C3%A7%C3%A3o?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Ciência da computação">ciência da computação</a>, uma <b>expressão regular</b> (do <a href="https://pt-m-wikipedia-org.translate.goog/wiki/L%C3%ADngua_inglesa?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Língua inglesa">inglês</a> <i>regular expression</i>, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Abreviatura?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Abreviatura">abreviado</a> <i><b>regex</b></i> ou <b>regexp</b><sup id="cite_ref-1" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-1"><span>[</span>1<span>]</span></a></sup>) provê uma forma concisa e flexível de identificar <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Cadeia_de_caracteres?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Cadeia de caracteres">cadeias de caracteres</a> de interesse, como <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Caractere?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Caractere">caracteres</a> particulares, palavras ou padrões de caracteres. Expressões regulares são escritas numa <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_formal?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem formal">linguagem formal</a> que pode ser <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_interpretada?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem interpretada">interpretada</a> por um processador de expressão regular, um <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Programa_de_computador?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Programa de computador">programa</a> que serve um <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Gerador_de_analisador_sint%C3%A1tico?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Gerador de analisador sintático">gerador de analisador sintático</a> ou examina o texto e identifica as partes que <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Casamento_de_padr%C3%B5es?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Casamento de padrões">casam</a> com a especificação dada.</p> <figure typeof="mw:File/Thumb"> <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ficheiro:Regular_expression_example.png?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Regular_expression_example.png/308px-Regular_expression_example.png" decoding="async" width="308" height="178" class="mw-file-element" srcset="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Regular_expression_example.png/462px-Regular_expression_example.png 1.5x,https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Regular_expression_example.png/616px-Regular_expression_example.png 2x" data-file-width="650" data-file-height="375"></a> <figcaption> Os destaques em <span style="background-color:#b0d0e9; color:black; border:0px; text-align:center;">&nbsp;azul&nbsp;</span> mostram os resultados da correspondência do padrão de expressão regular: <code>/h[aeiou]+/g</code> (a letra <i>h</i> seguida por uma ou mais vogais). </figcaption> </figure> <p>O termo deriva do trabalho do <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Matem%C3%A1tico?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Matemático">matemático</a> <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Estados_Unidos?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Estados Unidos">norte-americano</a> <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Stephen_Cole_Kleene?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Stephen Cole Kleene">Stephen Cole Kleene</a>, que desenvolveu as expressões regulares como uma notação ao que ele chamava de <a href="https://pt-m-wikipedia-org.translate.goog/wiki/%C3%81lgebra_de_Kleene?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Álgebra de Kleene">álgebra de conjuntos regulares</a>. Seu trabalho serviu de base para os primeiros <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Algoritmo_de_busca?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Algoritmo de busca">algoritmos computacionais de busca</a>, e depois para algumas das mais antigas ferramentas de tratamento de texto da plataforma <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Unix?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Unix">Unix</a>.</p> <p>O uso atual de expressões regulares inclui procura e substituição de texto em <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Editor_de_texto?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editor de texto">editores de texto</a> e <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_de_programa%C3%A7%C3%A3o?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem de programação">linguagens de programação</a>, validação de formatos de texto (validação de protocolos ou formatos digitais), <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Realce_de_sintaxe?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Realce de sintaxe">realce de sintaxe</a> e filtragem de informação.</p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"> <input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"> <div class="toctitle" lang="pt" dir="ltr"> <h2 id="mw-toc-heading">Índice</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span> </div> <ul> <li class="toclevel-1 tocsection-1"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Conceitos_b%C3%A1sicos"><span class="tocnumber">1</span> <span class="toctext">Conceitos básicos</span></a> <ul> <li class="toclevel-2 tocsection-2"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Altern%C3%A2ncia"><span class="tocnumber">1.1</span> <span class="toctext">Alternância</span></a></li> <li class="toclevel-2 tocsection-3"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Agrupamento"><span class="tocnumber">1.2</span> <span class="toctext">Agrupamento</span></a></li> <li class="toclevel-2 tocsection-4"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Quantifica%C3%A7%C3%A3o_(ou_repeti%C3%A7%C3%A3o)"><span class="tocnumber">1.3</span> <span class="toctext">Quantificação (ou repetição)</span></a></li> </ul></li> <li class="toclevel-1 tocsection-5"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Hist%C3%B3ria"><span class="tocnumber">2</span> <span class="toctext">História</span></a></li> <li class="toclevel-1 tocsection-6"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Teoria_de_linguagens_formais"><span class="tocnumber">3</span> <span class="toctext">Teoria de linguagens formais</span></a></li> <li class="toclevel-1 tocsection-7"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Sintaxe"><span class="tocnumber">4</span> <span class="toctext">Sintaxe</span></a> <ul> <li class="toclevel-2 tocsection-8"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#POSIX"><span class="tocnumber">4.1</span> <span class="toctext">POSIX</span></a> <ul> <li class="toclevel-3 tocsection-9"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#BRE:_express%C3%B5es_regulares_b%C3%A1sicas"><span class="tocnumber">4.1.1</span> <span class="toctext">BRE: expressões regulares básicas</span></a></li> <li class="toclevel-3 tocsection-10"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#ERE:_express%C3%B5es_regulares_estendidas"><span class="tocnumber">4.1.2</span> <span class="toctext">ERE: expressões regulares estendidas</span></a></li> <li class="toclevel-3 tocsection-11"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Classes_de_caracteres"><span class="tocnumber">4.1.3</span> <span class="toctext">Classes de caracteres</span></a></li> <li class="toclevel-3 tocsection-12"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Limites_de_palavras"><span class="tocnumber">4.1.4</span> <span class="toctext">Limites de palavras</span></a></li> </ul></li> <li class="toclevel-2 tocsection-13"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Perl_e_deriva%C3%A7%C3%B5es"><span class="tocnumber">4.2</span> <span class="toctext">Perl e derivações</span></a></li> </ul></li> <li class="toclevel-1 tocsection-14"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Padr%C3%B5es_para_linguagens_n%C3%A3o_regulares"><span class="tocnumber">5</span> <span class="toctext">Padrões para linguagens não regulares</span></a></li> <li class="toclevel-1 tocsection-15"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Implementa%C3%A7%C3%B5es"><span class="tocnumber">6</span> <span class="toctext">Implementações</span></a></li> <li class="toclevel-1 tocsection-16"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Relacionamento_com_Unicode"><span class="tocnumber">7</span> <span class="toctext">Relacionamento com Unicode</span></a></li> <li class="toclevel-1 tocsection-17"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Uso"><span class="tocnumber">8</span> <span class="toctext">Uso</span></a></li> <li class="toclevel-1 tocsection-18"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Ver_tamb%C3%A9m"><span class="tocnumber">9</span> <span class="toctext">Ver também</span></a></li> <li class="toclevel-1"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Refer%C3%AAncias"><span class="tocnumber">10</span> <span class="toctext">Referências</span></a></li> <li class="toclevel-1 tocsection-19"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Bibliografia"><span class="tocnumber">11</span> <span class="toctext">Bibliografia</span></a></li> <li class="toclevel-1 tocsection-20"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Liga%C3%A7%C3%B5es_externas"><span class="tocnumber">12</span> <span class="toctext">Ligações externas</span></a></li> </ul> </div> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(1)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Conceitos_básicos"><span id="Conceitos_b.C3.A1sicos"></span>Conceitos básicos</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=1&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Conceitos básicos" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-1 collapsible-block" id="mf-section-1"> <p>Uma expressão regular (ou, um padrão) descreve um conjunto de <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Cadeia_de_caracteres?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Cadeia de caracteres">cadeias de caracteres</a>, de forma concisa, sem precisar listar todos os elementos do conjunto. Por exemplo, um conjunto contendo as cadeias "<i>Handel</i>", "<i>Händel</i>" e "<i>Haendel</i>" pode ser descrito pelo padrão <code>H(ä|ae?)ndel</code>. A maioria dos formalismos provê pelo menos três operações para construir expressões regulares.</p> <div class="mw-heading mw-heading3"> <h3 id="Alternância"><span id="Altern.C3.A2ncia"></span>Alternância</h3><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=2&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Alternância" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <p>Uma <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Barra_vertical?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Barra vertical">barra vertical</a> (<code>|</code>) separa alternativas. Por exemplo, <code>psicadélico|psicodélico</code> pode casar "<i>psicadélico</i>" ou "<i>psicodélico</i>".</p> <div class="mw-heading mw-heading3"> <h3 id="Agrupamento">Agrupamento</h3><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=3&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Agrupamento" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <p><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Par%C3%AAnteses?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Parênteses">Parênteses</a> (<code>(</code>, <code>)</code>) são usados para definir o escopo e a <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ordem_de_opera%C3%A7%C3%B5es?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Ordem de operações">precedência de operadores</a>, entre outros usos. Por exemplo, <code>psicadélico|psicodélico</code> e <code>psic(a|o)délico</code> são equivalentes e ambas descrevem "<i>psicadélico</i>" e "<i>psicodélico</i>".</p> <div class="mw-heading mw-heading3"> <h3 id="Quantificação_(ou_repetição)"><span id="Quantifica.C3.A7.C3.A3o_.28ou_repeti.C3.A7.C3.A3o.29"></span>Quantificação (ou repetição)</h3><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=4&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Quantificação (ou repetição)" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <p>Um quantificador após um <i><a href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Token_(inform%C3%A1tica)&amp;action=edit&amp;redlink=1&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="new" title="Token (informática) (página não existe)">token</a></i> (como um caractere) ou agrupamento especifica a quantidade de vezes que o elemento precedente pode ocorrer. Os quantificadores mais comuns são o <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ponto_de_interroga%C3%A7%C3%A3o?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Ponto de interrogação">ponto de interrogação</a> <code>?</code>, o <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Asterisco?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Asterisco">asterisco</a> <code>*</code> e o <a href="https://pt-m-wikipedia-org.translate.goog/wiki/S%C3%ADmbolos_matem%C3%A1ticos?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Símbolos matemáticos">sinal de adição</a> <code>+</code>.</p> <p><code>?</code> indica que há zero ou uma ocorrência do elemento precedente. Por exemplo, <code>ac?ção</code> casa tanto "<i>acção</i>" quanto "<i>ação</i>".</p> <p><code>*</code> indica que há zero ou mais ocorrências do elemento precedente. Por exemplo, <code>ab*c</code> casa "<i>ac</i>", "<i>abc</i>", "<i>abbc</i>", "<i>abbbc</i>", e assim por diante.</p> <p><code>+</code> indica que há uma ou mais ocorrências do elemento precedente. Por exemplo, <code>ab+c</code> casa "<i>abc</i>", "<i>abbc</i>", "<i>abbbc</i>", e assim por diante, mas não "<i>ac</i>".</p> <p>Essas construções podem ser combinadas arbitrariamente para formar expressões complexas, assim como <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Aritm%C3%A9tica?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Aritmética">expressões aritméticas</a> com números e <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Opera%C3%A7%C3%B5es_Matem%C3%A1ticas?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect mw-disambig" title="Operações Matemáticas">operações</a> de adição, subtração, multiplicação e divisão. De forma geral, há diversas expressões regulares para descrever um mesmo conjunto de cadeias de caracteres. A sintaxe exata da expressão regular e os operadores disponíveis variam entre as implementações.</p> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(2)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="História"><span id="Hist.C3.B3ria"></span>História</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=5&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: História" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-2 collapsible-block" id="mf-section-2"> <p>A origem das expressões regulares está na <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Teoria_dos_aut%C3%B4matos?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Teoria dos autômatos">teoria dos autômatos</a> e na <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_formal?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem formal">teoria das linguagens formais</a>, e ambas fazem parte da <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Teoria_da_computa%C3%A7%C3%A3o?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Teoria da computação">teoria da computação</a>. Esses campos estudam modelos de computação (autômatas) e formas de descrição e classificação de linguagens formais. Na <a href="https://pt-m-wikipedia-org.translate.goog/wiki/D%C3%A9cada_de_1950?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Década de 1950">década de 1950</a>, o matemático <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Stephen_Cole_Kleene?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Stephen Cole Kleene">Stephen Cole Kleene</a> descreveu tais modelos usando sua notação matemática chamada de "conjuntos regulares", formando a <a href="https://pt-m-wikipedia-org.translate.goog/wiki/%C3%81lgebra_de_Kleene?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Álgebra de Kleene">álgebra de Kleene</a>. A linguagem <a href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=SNOBOL&amp;action=edit&amp;redlink=1&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="new" title="SNOBOL (página não existe)">SNOBOL</a> foi uma implementação pioneira de <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Casamento_de_padr%C3%B5es?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Casamento de padrões">casamento de padrões</a>, mas não era idêntica às expressões regulares. <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ken_Thompson?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Ken Thompson">Ken Thompson</a> construiu a notação de Kleene no <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Editor_de_texto?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editor de texto">editor de texto</a> <a href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=QED_(software)&amp;action=edit&amp;redlink=1&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="new" title="QED (software) (página não existe)">QED</a> como uma forma de casamento de padrões em <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Arquivo_de_texto?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Arquivo de texto">arquivos de texto</a>. Posteriormente, ele adicionou essa funcionalidade no editor de texto <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Unix?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Unix">Unix</a> <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ed_(software)?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Ed (software)">ed</a>, que resultou no uso de expressões regulares na popular ferramenta de busca <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Grep?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Grep">grep</a>. Desde então, diversas variações da adaptação original de Thompson foram usadas em Unix e derivados, incluindo <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Expr?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Expr">expr</a>, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/AWK?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="AWK">AWK</a>, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Emacs?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Emacs">Emacs</a>, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Vi?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Vi">vi</a> e <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Lex?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Lex">lex</a>.</p> <p>As expressões regulares de <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Perl?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Perl">Perl</a> e <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Tcl?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Tcl">Tcl</a> foram derivadas da biblioteca escrita por <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Henry_Spencer?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Henry Spencer">Henry Spencer</a>, e no Perl a funcionalidade foi expandida posteriormente.<sup id="cite_ref-2" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-2"><span>[</span>2<span>]</span></a></sup> <a href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Philip_Hazel&amp;action=edit&amp;redlink=1&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="new" title="Philip Hazel (página não existe)">Philip Hazel</a> desenvolveu a <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Perl_Compatible_Regular_Expressions?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Perl Compatible Regular Expressions">PCRE</a> (Perl Compatible Regular Expressions), uma <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Biblioteca_de_rotinas?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Biblioteca de rotinas">biblioteca</a> usada por diversas ferramentas modernas como <a href="https://pt-m-wikipedia-org.translate.goog/wiki/PHP?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="PHP">PHP</a> e o <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Servidor_Apache?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Servidor Apache">servidor Apache</a>. Parte do desenvolvimento do <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Perl_6?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Perl 6">Perl 6</a> foi melhorar a integração das expressões regulares de Perl, e aumentar seu escopo e funcionalidade para permitir a definição de <a href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Gram%C3%A1tica_de_express%C3%A3o_de_analisadores_sint%C3%A1ticos&amp;action=edit&amp;redlink=1&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="new" title="Gramática de expressão de analisadores sintáticos (página não existe)">gramáticas de expressão de analisadores sintáticos</a>.<sup id="cite_ref-Apocalypse5_3-0" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-Apocalypse5-3"><span>[</span>3<span>]</span></a></sup> O resultado foi uma mini-linguagem, as regras do Perl 6, usada para definir a gramática do Perl 6 assim como fornecer uma ferramenta para programadores da linguagem. Tais regras mantiveram as funcionalidades de expressões regulares do Perl 5.x, mas também permitiram uma definição <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Formalismo_de_Backus-Naur?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Formalismo de Backus-Naur">BNF</a> de um <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Analisador_sint%C3%A1tico_descendente_recursivo?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Analisador sintático descendente recursivo">analisador sintático descendente recursivo</a>.</p> <p>O uso de expressões regulares em normas de informação estruturada para a modelagem de documentos e <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Banco_de_dados?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Banco de dados">bancos de dados</a> começou na <a href="https://pt-m-wikipedia-org.translate.goog/wiki/D%C3%A9cada_de_1960?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Década de 1960">década de 1960</a>, e expandiu na <a href="https://pt-m-wikipedia-org.translate.goog/wiki/D%C3%A9cada_de_1980?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Década de 1980">década de 1980</a> quando normas como a <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Standard_Generalized_Markup_Language?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Standard Generalized Markup Language">ISO SGML</a> foram consolidadas.</p> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(3)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Teoria_de_linguagens_formais">Teoria de linguagens formais</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=6&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Teoria de linguagens formais" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-3 collapsible-block" id="mf-section-3"> <p>Expressões regulares podem ser expressas através da <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_formal?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem formal">teoria de linguagens formais</a>. Elas consistem de constantes e operadores que denotam conjuntos de cadeias de caracteres e operações sobre esses conjuntos, respectivamente. Dado um <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Alfabeto?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Alfabeto">alfabeto</a> finito Σ, as seguintes constantes são definidas:</p> <ul> <li>(<i><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Conjunto_vazio?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Conjunto vazio">conjunto vazio</a></i>) <span class="Unicode">∅</span> denotando o conjunto <span class="Unicode">∅</span></li> <li>(<i>cadeia de caracteres vazia</i>) ε denotando o conjunto {ε}</li> <li>(<i>literal</i>) <i>a</i> em Σ denotando o conjunto {<i>a</i>}</li> </ul> <p>As seguintes operações são definidas:</p> <ul> <li>(<i>concatenação</i>) <i>RS</i> denotando o conjunto { αβ | α em <i>R</i> e β em <i>S</i> }. Por exemplo, {"<i>ab</i>", "<i>c</i>"}{"<i>d</i>", "<i>ef</i>"} = {"<i>abd</i>", "<i>abef</i>", "<i>cd</i>", "<i>cef</i>"}.</li> <li>(<i>alternância</i>) <i>R|S</i> denotando o conjunto união de <i>R</i> e <i>S</i>. Usa-se os símbolos <span class="Unicode">∪</span>, <span class="Unicode">+</span> ou <span class="Unicode">∨</span> para alternância ao invés da barra vertical. Por exemplo, {"<i>ab</i>", "<i>c</i>"}<span class="Unicode">∪</span>{"<i>dv</i>", "<i>ef</i>"} = {"<i>ab</i>", "<i>c</i>", "<i>dv</i>", "<i>ef</i>"}</li> <li>(<i><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Fecho_de_Kleene?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Fecho de Kleene">Fecho de Kleene</a></i>) <i>R</i>* denotando o menor <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Superconjunto?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Superconjunto">superconjunto</a> de <i>R</i> que contém ε e é <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Fechamento?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Fechamento">fechado</a> sob concatenação. Esse é o conjunto de todas as cadeias de caracteres que podem ser construídas ao concatenar zero ou mais cadeias em <i>R</i>. Por exemplo, {"<i>ab</i>", "<i>c</i>"}* = {ε, "<i>ab</i>", "<i>c</i>", "<i>abab</i>", "<i>abc</i>", "<i>cab</i>", "<i>cc</i>", "<i>ababab</i>", "<i>abcab</i>", ... }.</li> </ul> <p>As constantes e os operadores acima formam a <a href="https://pt-m-wikipedia-org.translate.goog/wiki/%C3%81lgebra_de_Kleene?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Álgebra de Kleene">álgebra de Kleene</a>.</p> <p>Para evitar parênteses, é assumido que o fecho de Kleene possui a maior prioridade, depois a concatenação e por fim a alternância. Se não houver ambiguidades, os parênteses podem ser omitidos. Por exemplo, <code>(ab)c</code> pode ser escrito como <code>abc</code>, e <code>a|(b(c*))</code> pode ser escrito como <code>a|bc*</code>.</p> <dl> <dt> Exemplos </dt> </dl> <ul> <li><code>a|b*</code> denota {ε, <i>a</i>, <i>b</i>, <i>bb</i>, <i>bbb</i>, ...}</li> <li><code>(a|b)*</code> denota o conjunto de todas as cadeias de caracteres que contém os símbolos <i>a</i> e <i>b</i>, incluindo a cadeia vazia: {ε, <i>a</i>, <i>b</i>, <i>aa</i>, <i>ab</i>, <i>ba</i>, <i>bb</i>, <i>aaa</i>, ...}</li> <li><code>ab*(c|ε)</code> denota o conjunto de cadeias de caracteres começando com <i>a</i>, então com zero ou mais <i>b</i>s e opcionalmente com um <i>c</i>: {<i>a</i>, <i>ac</i>, <i>ab</i>, <i>abc</i>, <i>abb</i>, ...}</li> </ul> <p>A definição formal de expressões regulares é concisa e evita a utilização dos quantificadores redundantes <code>?</code> e <code>+</code>, que podem ser expressados respectivamente por <code>(a|ε)</code> e <code>aa*</code>. Por vezes o operador de complemento ~ é adicionado; ~<i>R</i> denota o conjunto das cadeias de caracteres de Σ* que não estão em <i>R</i>. Esse operador é redundante, e pode ser expressado usando outros operadores, apesar da computação para tal representação ser complexa.</p> <p>Expressões regulares podem expressar <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem regular">linguagens regulares</a>, a classe de linguagens aceita por um <a href="https://pt-m-wikipedia-org.translate.goog/wiki/M%C3%A1quina_de_estado_finito?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Máquina de estado finito">autômato finito</a>. Entretanto, há uma diferença significativa na compactação. Algumas classes de linguagens regulares podem ser descritas somente por autômatos que crescem exponencialmente em tamanho, enquanto o tamanho das expressões regulares requeridas só pode crescer linearmente. Expressões regulares correspondem ao Tipo-3 das <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Gram%C3%A1tica_formal?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Gramática formal">gramáticas</a> da <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Hierarquia_de_Chomsky?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Hierarquia de Chomsky">Hierarquia de Chomsky</a>. Por outro lado, existe um mapeamento simples de expressões regulares para máquinas de estado finito não-determinísticas que não leva ao crescimento desgovernado do tamanho. Por essa razão, essas máquinas não determinísticas são geralmente usadas como representação alternativa das expressões regulares.</p> <p>É possível escrever um <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Algoritmo?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Algoritmo">algoritmo</a> que, para duas expressões regulares dadas, decide se as linguagens descritas são essencialmente iguais. Reduz-se cada expressão na máquina de estado finito mínima, e determina-se se ambas as máquinas mínimas são <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Isomorfismo?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Isomorfismo">isomórficas</a> (equivalentes).</p> <p>Vale notar que diversas implementações de expressões regulares implementam funcionalidades que não podem ser expressadas na álgebra de Kleene; ver <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Padr%C3%B5es_para_linguagens_n%C3%A3o_regulares">abaixo</a> mais sobre o assunto.</p> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(4)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Sintaxe">Sintaxe</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=7&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Sintaxe" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-4 collapsible-block" id="mf-section-4"> <div class="mw-heading mw-heading3"> <h3 id="POSIX">POSIX</h3><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=8&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: POSIX" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <p>De <a href="https://pt-m-wikipedia-org.translate.goog/wiki/1986?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="1986">1986</a>, a norma <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Institute_of_Electrical_and_Electronics_Engineers?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Institute of Electrical and Electronics Engineers">IEEE</a> <a href="https://pt-m-wikipedia-org.translate.goog/wiki/POSIX?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="POSIX">POSIX</a> 1003.2 (POSIX.2) padroniza expressões regulares, e fornece duas especificações, a saber:</p> <ul> <li>o conjunto básico (BRE) e</li> <li>o conjunto estendido (ERE).</li> </ul> <div class="mw-heading mw-heading4"> <h4 id="BRE:_expressões_regulares_básicas"><span id="BRE:_express.C3.B5es_regulares_b.C3.A1sicas"></span>BRE: expressões regulares básicas</h4><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=9&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: BRE: expressões regulares básicas" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <p>A sintaxe tradicional de expressões regulares em Unix seguiu convenções comuns, mas diferiu entre as implementações. A norma IEEE POSIX BRE (<i>Basic Regular Expressions</i>, do <a href="https://pt-m-wikipedia-org.translate.goog/wiki/L%C3%ADngua_inglesa?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Língua inglesa">inglês</a>, expressões regulares básicas) foi desenvolvida primordialmente por compatibilidade com a sintaxe tradicional, mas fornecia uma norma comum que desde então foi adotada por diversas ferramentas.</p> <p>Na sintaxe de BRE, a maioria dos caracteres são tratados como literais — eles casam somente com eles próprios (por exemplo, <code>a</code> casa "<i>a</i>"). As exceções são chamadas metacaracteres ou metassequências, definidos abaixo:</p> <table class="wikitable"> <tbody> <tr> <th>Metacaractere</th> <th>Descrição</th> </tr> <tr> <th colspan="2">Padrões individuais</th> </tr> <tr valign="top"> <td><code>.</code></td> <td>Casa qualquer caractere. Algumas implementações excluem <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Quebra_de_linha?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Quebra de linha">quebra de linha</a> e codificação de caracteres. Nas expressões POSIX de listas de caracteres (ver logo abaixo), o caractere ponto é tratado como o literal. Por exemplo, <code>a.c</code> casa "<i>abc</i>", etc., mas <code>[a.c]</code> casa somente "<i>a</i>", "<i>.</i>" ou "<i>c</i>".</td> </tr> <tr valign="top"> <td><code>[&nbsp;]</code></td> <td>Lista de caracteres. Casa uma ocorrência de qualquer caractere contido na lista. Por exemplo, <code>[abc]</code> casa "<i>a</i>", "<i>b</i>" ou "<i>c</i>". É possível definir intervalos de caracteres: <code>[a-z]</code> casa qualquer caractere de "<i>a</i>" a "<i>z</i>", e <code>[0123456789]</code> é igual a <code>[0-9]</code>. O caractere <code>-</code> é tratado como literal se for o primeiro ou o último da lista, ou se for <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Seq%C3%BC%C3%AAncia_de_escape?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Seqüência de escape">escapado</a>: <code>[abc-]</code>, <code>[-abc]</code> ou <code>[a\-bc]</code>.</td> </tr> <tr valign="top"> <td><code>[^&nbsp;]</code></td> <td>Lista negada de caracteres. Casa uma ocorrência de qualquer caractere não contido na lista. Por exemplo, <code>[^abc]</code> casa qualquer caractere que não seja "<i>a</i>", "<i>b</i>" ou "<i>c</i>". <code>[^a-z]</code> casa qualquer caractere que não esteja em <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Caixa_baixa?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Caixa baixa">caixa baixa</a>.</td> </tr> <tr> <th colspan="2">Âncoras</th> </tr> <tr valign="top"> <td><code>^</code></td> <td>Casa o começo da cadeia de caracteres. Numa situação de múltiplas linhas, casa o começo das linhas. Logo percebe-se que as âncoras não casam pedaços do texto, elas servem apenas como uma referência.</td> </tr> <tr valign="top"> <td><code>$</code></td> <td>Casa o fim da cadeia de caracteres ou a posição logo antes da quebra de linha do fim da cadeia. Numa situação de múltiplas linhas, casa o fim das linhas.</td> </tr> <tr> <th colspan="2">Captura de dados</th> </tr> <tr valign="top"> <td><span style="white-space:nowrap;">BRE: <code>\(&nbsp;\)</code></span><br><span style="white-space:nowrap;">ERE: <code>(&nbsp;)</code></span></td> <td>Grupo de captura. Marca uma subexpressão. A cadeia de caracteres que casa com o conteúdo dentro dos parênteses pode ser chamada posteriormente.</td> </tr> <tr valign="top"> <td><code>\<i>n</i></code></td> <td>Associado com o item anterior. Casa a n-ésima subexpressão marcada, em que <i>n</i> é um dígito de 1 a 9. Essa construção é teoricamente irregular e não foi adotada pela sintaxe POSIX ERE. Algumas ferramentas permitem referenciar mais de nove grupos de captura.</td> </tr> <tr> <th colspan="2">Quantificadores (ou repetidores)</th> </tr> <tr valign="top"> <td><code>*</code></td> <td>Casa o elemento precedente zero ou mais vezes. Por exemplo, <code>ab*c</code> casa "<i>ac</i>", "<i>abc</i>", "<i>abbbc</i>", etc.. <code>[xyz]*</code> casa "", "<i>x</i>", "<i>y</i>", "<i>z</i>", "<i>zx</i>", "<i>zyx</i>", "<i>xyzzy</i>", e assim por diante. <code>\(ab\)*</code> casa "", "<i>ab</i>", "<i>abab</i>", "<i>ababab</i>", e assim por diante.</td> </tr> <tr valign="top"> <td><span style="white-space:nowrap;">BRE: <code>\{<i>m</i>,<i>n</i>\}</code></span><br><span style="white-space:nowrap;">ERE: <code>{<i>m</i>,<i>n</i>}</code></span></td> <td>Casa o elemento precedente pelo menos <i>m</i> vezes e não mais que <i>n</i> vezes. Por exemplo, <code>a\{3,5\}</code> casa somente "<i>aaa</i>", "<i>aaaa</i>", e "<i>aaaaa</i>". Esta funcionalidade não é encontrada em algumas implementações muito antigas. Outras opções incluem omitir um dos campos. Por exemplo, <code>a\{3,\}</code> casa pelo menos três "a"s. Já <code>a\{3\}</code> casa somente três "a"s. <code>b{0,}</code> é análogo a <code>b*</code>, <code>b{0,1}</code> é análogo a <code>b?</code> (ver o quantificador <code>?</code> abaixo) e <code>b{1,}</code> é idêntico a <code>b+</code> (ver o quantificador <code>+</code> abaixo).</td> </tr> </tbody> </table> <p>Uma característica da BRE é que os metacaracteres geralmente exigem barras invertidas para serem tratados como tal. Por exemplo, em BRE, <code>a{1,2}</code> é composto somente por literais, e casará somente "<i>a{1,2}</i>". Para casar entre uma a duas ocorrências de "a", deve-se usar a expressão regular <code>a\{1,2\}</code>. A motivação desse sistema é a compatibilidade com sistemas antigos, já que na época da padronização já havia código Unix legado que usava chaves como literais.</p> <div class="mw-heading mw-heading4"> <h4 id="ERE:_expressões_regulares_estendidas"><span id="ERE:_express.C3.B5es_regulares_estendidas"></span>ERE: expressões regulares estendidas</h4><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=10&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: ERE: expressões regulares estendidas" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <p>O significado dos metacaracteres serem <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Seq%C3%BC%C3%AAncia_de_escape?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Seqüência de escape">escapados</a> com a barra invertida é revertido na sintaxe POSIX ERE (<i>Extended Regular Expression</i>, do <a href="https://pt-m-wikipedia-org.translate.goog/wiki/L%C3%ADngua_inglesa?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Língua inglesa">inglês</a>, expressões regulares estendidas). Isso significa que não são usadas <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Seq%C3%BC%C3%AAncia_de_escape?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Seqüência de escape">barras invertidas</a> para identificar metacaracteres. Pelo contrário, elas servem justamente para transformar metacaracteres em literais. Retomando o exemplo da seção anterior, em ERE, <code>a{1,2}</code> casa uma a duas ocorrências de "a", enquanto <code>a\{1,2\}</code> casa o literal "<i>a{1,2}</i>".</p> <p>Os seguintes metacaracteres foram adicionados:</p> <table> <tbody> <tr> <th colspan="2">Quantificadores</th> </tr> <tr valign="top"> <td><code>?</code></td> <td>Casa o elemento precedente zero ou uma vez. Por exemplo, <code>ba?</code> casa "<i>b</i>" ou "<i>ba</i>".</td> </tr> <tr valign="top"> <td><code>+</code></td> <td>Casa o elemento precedente uma ou mais vezes. Por exemplo, <code>ba+</code> casa "<i>ba</i>", "<i>baa</i>", "<i>baaa</i>", e assim por diante. Como visto na seção de teoria, esse metacaractere pode ser simulado em BRE através de <code>aa*</code>.</td> </tr> <tr> <th colspan="2">Alternadores</th> </tr> <tr valign="top"> <td><code>|</code></td> <td>Casa ou a expressão que precede ou a expressão que sucede. Por exemplo, <code>abc|def</code> casa "<i>abc</i>" ou "<i>def</i>".</td> </tr> </tbody> </table> <p>Ferramentas que adotaram a sintaxe incluem <a href="https://pt-m-wikipedia-org.translate.goog/wiki/MySQL?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="MySQL">MySQL</a> e <a href="https://pt-m-wikipedia-org.translate.goog/wiki/PHP?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="PHP">PHP</a>, esta, que suporta também as derivações de Perl no modelo do <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Perl_Compatible_Regular_Expressions?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Perl Compatible Regular Expressions">PCRE</a><sup id="cite_ref-4" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-4"><span>[</span>4<span>]</span></a></sup>.</p> <div class="mw-heading mw-heading4"> <h4 id="Classes_de_caracteres">Classes de caracteres</h4><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=11&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Classes de caracteres" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <p>Já que diversos grupos de caracteres dependem duma configuração de <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Locale?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Locale">locale</a> específica, a POSIX define algumas classes (ou categorias) de caracteres para fornecer um método padrão de acesso a alguns grupos específicos de caracteres bastante utilizados, como mostrado na seguinte tabela:</p> <table> <tbody> <tr> <td><code>[:alnum:]</code></td> <td>Caracteres alfanuméricos, o que no caso de ASCII corresponde a <code>[A-Za-z0-9]</code>.</td> </tr> <tr> <td><code>[:alpha:]</code></td> <td>Caracteres alfabéticos, o que no caso de ASCII corresponde a <code>[A-Za-z]</code>.</td> </tr> <tr> <td><code>[:blank:]</code></td> <td>Espaço e tabulação, o que no caso de ASCII corresponde a <code>[ \t]</code>.</td> </tr> <tr> <td><code>[:cntrl:]</code></td> <td>Caracteres de controle, o que no caso de ASCII corresponde a <code>[\x00-\x1F\x7F]</code>.</td> </tr> <tr> <td><code>[:digit:]</code></td> <td>Dígitos, o que no caso de ASCII corresponde a <code>[0-9]</code>. O Perl oferece o atalho <code>\d</code>.</td> </tr> <tr> <td><code>[:graph:]</code></td> <td>Caracteres visíveis, o que no caso de ASCII corresponde a <code>[\x21-\x7E]</code>.</td> </tr> <tr> <td><code>[:lower:]</code></td> <td>Caracteres em caixa baixa, o que no caso de ASCII corresponde a <code>[a-z]</code>.</td> </tr> <tr> <td><code>[:print:]</code></td> <td>Caracteres visíveis e espaços, o que no caso de ASCII corresponde a <code>[\x20-\x7E]</code>.</td> </tr> <tr> <td><code>[:punct:]</code></td> <td>Caracteres de pontuação, o que no caso de ASCII corresponde a <code>[-!"#$%&amp;'()*+,./:;&lt;=&gt;?@[\\\]_`{|}~]</code>.</td> </tr> <tr> <td><code>[:space:]</code></td> <td>Caracteres de espaços em branco, o que no caso de ASCII corresponde a <code>[ \t\r\n\v\f]</code>. O Perl oferece o atalho <code>\s</code>, que, entretanto, não é exatamente equivalente; diferente do <code>\s</code>, a classe ainda inclui um tabulador vertical, \x11 do ASCII.<sup id="cite_ref-doc_perl_5-0" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-doc_perl-5"><span>[</span>5<span>]</span></a></sup></td> </tr> <tr> <td><code>[:upper:]</code></td> <td>Caracteres em caixa alta, o que no caso de ASCII corresponde a <code>[A-Z]</code>.</td> </tr> <tr> <td><code>[:xdigit:]</code></td> <td>Dígitos hexadecimais, o que no caso de ASCII corresponde a <code>[A-Fa-f0-9]</code>.</td> </tr> </tbody> </table> <p>Notar que as doze classes definidas acima também estão definidas na <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Biblioteca_padr%C3%A3o_do_C?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Biblioteca padrão do C">biblioteca padrão do C</a>, na seção de funções de testes de caracteres do cabeçalho <code>ctype.h</code>.</p> <p>Tais classes só podem ser usadas dentro de expressões de listas de caracteres. Diferentes <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Locale?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Locale">locales</a> podem fornecer classes adicionais. Uma extensão não POSIX difundida é <code>[:word:]</code> (atalho do Perl <code>\w</code>), geralmente definida como <code>[:alnum:]</code> ou <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Tra%C3%A7o_baixo?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Traço baixo">traço baixo</a> (<code>_</code>) e <code>[:ascii:]</code>, contendo somente caracteres <a href="https://pt-m-wikipedia-org.translate.goog/wiki/ASCII?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="ASCII">ASCII</a> (<code>[\x01-\x7F]</code>).</p> <p>Pode-se negar uma classe de caracteres precedendo um acento circunflexo ao nome da classe. Por exemplo, para negar <code>[:digit:]</code> usa-se <code>[:^digit:]</code>.<sup id="cite_ref-doc_perl_5-1" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-doc_perl-5"><span>[</span>5<span>]</span></a></sup></p> <div class="mw-heading mw-heading4"> <h4 id="Limites_de_palavras">Limites de palavras</h4><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=12&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Limites de palavras" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <p>A norma POSIX define ainda dois metacaracteres especiais que servem para casar os limites de palavras nas cadeias de caracteres. Nesse contexto da POSIX, uma palavra é formada por caracteres <code>[:alnum:]</code> ou <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Tra%C3%A7o_baixo?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Traço baixo">traço baixo</a> (<code>_</code>). Assim como as âncoras, esses metacaracteres não casam pedaços do texto, elas servem apenas como uma referência. Eles são:</p> <table> <tbody> <tr> <td><code>[[:&lt;:]]</code></td> <td>Casa o começo de palavras.</td> </tr> <tr> <td><code>[[:&gt;:]]</code></td> <td>Casa o fim de palavras.</td> </tr> </tbody> </table> <div class="mw-heading mw-heading3"> <h3 id="Perl_e_derivações"><span id="Perl_e_deriva.C3.A7.C3.B5es"></span>Perl e derivações</h3><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=13&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Perl e derivações" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <p><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Perl?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Perl">Perl</a> possui uma sintaxe mais consistente e rica que as normas POSIX BRE e ERE. Um exemplo é que <code>\</code> sempre escapa um caractere não alfanumérico. Devido ao poder de expressão, outras ferramentas adotaram a sintaxe do Perl, como por exemplo <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Java (linguagem de programação)">Java</a><sup id="cite_ref-6" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-6"><span>[</span>6<span>]</span></a></sup>, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/JavaScript?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="JavaScript">JavaScript</a>, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Perl_Compatible_Regular_Expressions?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Perl Compatible Regular Expressions">PCRE</a>, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Python?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Python">Python</a><sup id="cite_ref-7" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-7"><span>[</span>7<span>]</span></a></sup>, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ruby_(linguagem_de_programa%C3%A7%C3%A3o)?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Ruby (linguagem de programação)">Ruby</a> e <a href="https://pt-m-wikipedia-org.translate.goog/wiki/.NET?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title=".NET">.NET</a><sup id="cite_ref-8" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-8"><span>[</span>8<span>]</span></a></sup>. Algumas linguagens e ferramentas como <a href="https://pt-m-wikipedia-org.translate.goog/wiki/PHP?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="PHP">PHP</a> suportam diversos tipos de expressões regulares.</p> <p>Um exemplo de funcionalidade possível em Perl mas não em POSIX é a quantificação preguiçosa. Os quantificadores padrões das expressões regulares são "gananciosos", isto é, casam o quanto puderem, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Backtracking?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Backtracking">voltando atrás</a> somente se necessário para casar o resto da expressão regular. Por exemplo, um novato no assunto tentando encontrar a primeira instância de um item entre os símbolos &lt; e &gt; no texto "<i>Outra explosão ocorreu em &lt;26 de janeiro&gt; de &lt;2004&gt;</i>" provavelmente usaria o padrão <code>&lt;.*&gt;</code>, ou similar. Entretanto, esse padrão retornará "<i>&lt;26 de janeiro&gt; de &lt;2004&gt;</i>" ao invés de "<i>&lt;26 de janeiro&gt;</i>", como esperado, pois o quantificador <code>*</code> é ganancioso — ele consumirá a quantidade máxima de caracteres, e "<i>26 de janeiro&gt; de &lt;2004</i>" possui mais caracteres que "<i>26 de janeiro</i>".</p> <p>Apesar desse problema ser evitável de diferentes formas (por exemplo, especificando o que não casar: <code>&lt;[^&gt;]*&gt;</code>), a maioria das ferramentas permitem que um quantificador seja preguiçoso, ou não ganancioso, ao suceder o quantificador com um ponto de interrogação. No exemplo anterior, a alternativa seria <code>&lt;.*?&gt;</code>. Seguem os quantificadores não gulosos:</p> <table> <tbody> <tr> <th colspan="2">Quantificadores não gulosos</th> </tr> <tr> <td><code>??</code></td> <td>Versão não gulosa de <code>?</code>. <p>Dado o texto "<i>aaa</i>", <code>a?</code> casa "<i>a</i>" enquanto <code>a??</code> casa "".</p></td> </tr> <tr> <td><code>*?</code></td> <td>Versão não gulosa de <code>*</code>. <p>Dado o texto "<i>aaa</i>", <code>a*</code> casa "<i>aaa</i>" enquanto <code>a*?</code> casa "".</p></td> </tr> <tr> <td><code>+?</code></td> <td>Versão não gulosa de <code>+</code>. <p>Dado o texto "<i>aaa</i>", <code>a+</code> casa "<i>aaa</i>" enquanto <code>a+?</code> casa "<i>a</i>".</p></td> </tr> <tr> <td><code>{m,n}?</code></td> <td>Versão não gulosa de <code>{m,n}</code>. <p>Dado o texto "<i>aaa</i>", <code>a{2,3}</code> casa "<i>aaa</i>" enquanto <code>a{2,3}?</code> casa "<i>aa</i>".</p></td> </tr> </tbody> </table> <p>O PERL define algumas <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Seq%C3%BC%C3%AAncia_de_escape?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Seqüência de escape">sequências de escape</a> que servem como atalhos para certos metacaracteres:</p> <table> <tbody> <tr> <th colspan="2">Padrões individuais</th> </tr> <tr valign="top"> <td><code>\s</code></td> <td>Casa espaços em branco, \n \r ou \t.</td> </tr> <tr valign="top"> <td><code>\S</code></td> <td>Negação de \s: casa o que não for espaço em branco, \n \r ou \t.</td> </tr> <tr valign="top"> <td><code>\w</code></td> <td>Casa letras, dígitos, ou '_'.</td> </tr> <tr valign="top"> <td><code>\W</code></td> <td>Negação de \w</td> </tr> <tr valign="top"> <td><code>\d</code></td> <td>Casa dígitos, de 0 a 9.</td> </tr> <tr valign="top"> <td><code>\D</code></td> <td>Negação de \d</td> </tr> <tr> <th colspan="2">Âncoras</th> </tr> <tr valign="top"> <td><code>\b</code></td> <td>Casa a separação de palavras, o que inclui também o começo (<code>^</code>) e o fim (<code>$</code>) da cadeia de caracteres testada. A definição dos caracteres que formam palavras varia de acordo com a implementação, mas é seguro assumir pelo menos <code>[a-zA-Z0-9_]</code>. Havendo suporte, o atalho <code>\w</code> é uma alternativa válida. O <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Java (linguagem de programação)">Java</a> é uma notável exceção na medida em que suporta <code>\b</code> mas não <code>\w</code>. Notar que apesar de parecida com os limites de palavras definidos pela POSIX, esta sequência de escape não distingue o começo e o final da palavra, somente a separação em si.</td> </tr> <tr valign="top"> <td><code>\B</code></td> <td>Negação de \b</td> </tr> <tr valign="top"> <td><code>\A</code></td> <td>Casa o começo da cadeia de caracteres. Numa situação de múltiplas linhas, não casa o começo das linhas seguintes, o que a difere de <code>^</code>.</td> </tr> <tr valign="top"> <td><code>\Z</code></td> <td>Casa o fim da cadeia de caracteres ou a posição logo antes da quebra de linha do fim da cadeia. Numa situação de múltiplas linhas, não casa o fim das linhas seguintes, o que a difere de <code>$</code>.</td> </tr> <tr valign="top"> <td><code>\z</code></td> <td>Casa o fim da cadeia de caracteres.</td> </tr> </tbody> </table> <p>Além dos quantificadores preguiçosos e das novas sequências de escape, o Perl também adicionou uma forma nova de casamento de padrões que estendem a POSIX. São um conjunto de metacaracteres que seguem o padrão <code>(?…)</code>, listados abaixo:</p> <table> <tbody> <tr valign="top"> <td><code>(?#&nbsp;)</code></td> <td>Adiciona um comentário, ignorado nos casamentos.</td> </tr> <tr valign="top"> <td><code>(?:&nbsp;)</code></td> <td>Grupo de captura que não é salvo para nova chamada posterior (<code>\1</code>, <code>\2</code>, <code>\3</code>, ...)</td> </tr> <tr valign="top"> <td><code>(?=&nbsp;)</code></td> <td>Casa ocorrências do padrão atual a partir da posição atual até o final. Assim como as âncoras (<code>^</code>, <code>$</code>), o padrão não é incluído no casamento, servindo apenas na verificação. Por exemplo, o padrão <code>carro(?=azul)</code> aplicado a "<i>Um carro esportivo azul barato.</i>" casará "<i>carro</i>".</td> </tr> <tr valign="top"> <td><code>(?!&nbsp;)</code></td> <td>Negação de <code>(?=)</code>, casa a ausência do padrão atual a partir da posição atual até o final, e também não inclui o padrão no casamento. Por exemplo, o padrão <code>carro(?!amarelo)</code> casará em "<i>Um carro esportivo azul barato.</i>", entretanto <code>carro(?!azul)</code> não casará.</td> </tr> <tr valign="top"> <td><code>(?&lt;=&nbsp;)</code></td> <td>Casa ocorrências do padrão atual a partir do começo até a posição atual, mas não inclui o padrão no casamento, servindo apenas na verificação. Por exemplo, o padrão <code>(?&lt;=carro)azul</code> aplicado a "<i>Um carro esportivo azul barato.</i>" casará "<i>azul</i>".</td> </tr> <tr valign="top"> <td><code>(?&lt;!&nbsp;)</code></td> <td>Negação de <code>(?&lt;=)</code>, casa a ausência do padrão atual a partir do começo até a posição atual, e também não inclui o padrão no casamento. Por exemplo, o padrão <code>(?&lt;!carro)amarelo</code> casará em "<i>Um carro esportivo azul barato.</i>", entretanto <code>(?&lt;!carro)azul</code> não casará.</td> </tr> <tr valign="top"> <td><code>(?&nbsp;)</code></td> <td>Aplica modificadores a partes da expressão regular. Os valores aceitos são i (ignora diferenças entre maiúsculas e minúsculas), m (texto multilinha), s (texto monolinha) e x (inclusão de espaços e comentários).</td> </tr> <tr valign="top"> <td><code>(?(A)B|C)</code></td> <td>Um <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Opera%C3%A7%C3%A3o_tern%C3%A1ria?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#Programa%C3%A7%C3%A3o" title="Operação ternária">operador ternário</a>, usado geralmente em conjunto dos grupos de captura. Por exemplo, a escolha duma ou outra subexpressão regular depende dum casamento ou não anterior.</td> </tr> <tr valign="top"> <td><code>(?(A)B)</code></td> <td>Variação binária da estrutura anterior, em que uma expressão é adicionada ao padrão <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Se_e_somente_se?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Se e somente se">se e somente se</a> a condição é verdadeira.</td> </tr> </tbody> </table> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(5)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Padrões_para_linguagens_não_regulares"><span id="Padr.C3.B5es_para_linguagens_n.C3.A3o_regulares"></span>Padrões para linguagens não regulares</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=14&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Padrões para linguagens não regulares" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-5 collapsible-block" id="mf-section-5"> <p>Diversas funcionalidades encontradas em bibliotecas atuais de expressões regulares provem um poder de expressão que excede as <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem regular">linguagens regulares</a>. Por exemplo, a habilidade de agrupar subexpressões com parênteses e chamar novamente o valor casado na mesma expressão significa que o padrão pode casar cadeias de palavras repetidas como "<i>papa</i>" ou "<i>WikiWiki</i>", os chamados quadrados na teoria de linguagens formais. O padrão para essas cadeias é <code>(.*)\1</code>. Entretanto, a linguagem de quadrados não é regular, nem <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_livre_de_contexto?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem livre de contexto">livre de contexto</a>. <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Casamento_de_padr%C3%B5es?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Casamento de padrões">Casamento de padrões</a> com um número indeterminado de referências anteriores, como suportado em ferramentas atuais, é <a href="https://pt-m-wikipedia-org.translate.goog/wiki/NP-dif%C3%ADcil?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="NP-difícil">NP-difícil</a>.</p> <p>Entretanto, as ferramentas que fornecem tais construções ainda usam o termo expressões regulares para os padrões, o que leva a uma nomenclatura que difere da teoria das linguagens formais. Por essa razão, algumas pessoas usam o termo <i>regex</i> ou simplesmente <i>padrão</i> para descrever esse conceito mais abrangente.</p> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(6)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Implementações"><span id="Implementa.C3.A7.C3.B5es"></span>Implementações</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=15&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Implementações" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-6 collapsible-block" id="mf-section-6"> <p>Existem pelo menos dois <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Algoritmo?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Algoritmo">algoritmos</a> fundamentalmente diferentes entre si que decidem se e como uma expressão regular casa uma cadeia de caracteres.</p> <p>O mais antigo e mais rápido faz uso dum princípio da teoria de linguagens formais que permite a todas as máquinas de estado finito não determinísticas serem transformadas em máquinas de estado finito determinísticas. Geralmente chamado de DFA, o algoritmo realiza ou simula tal transformação e então executa a máquina determinística resultante na cadeia de caracteres, um símbolo de cada vez. Esse último processo tem <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Complexidade_linear?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Complexidade linear">complexidade linear</a> relativa ao tamanho da cadeia de caracteres. Mais precisamente, uma cadeia de caracteres de tamanho <i>n</i> pode ser testada numa expressão regular de tamanho <i>m</i> no tempo <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Grande-O?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Grande-O"><i>O</i></a>(<i><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"> <math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n+2^{m}}"><semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi> n </mi> <mo> + </mo> <msup> <mn> 2 </mn> <mrow class="MJX-TeXAtom-ORD"> <mi> m </mi> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex"> {\displaystyle n+2^{m}} </annotation> </semantics> </math></span> <noscript> <img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/5423040452ebf9655fc482a84a1e3470d6dfa2ae" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:7.073ex; height:2.509ex;" alt="{\displaystyle n+2^{m}}"> </noscript><span class="lazy-image-placeholder" style="width: 7.073ex;height: 2.509ex;vertical-align: -0.505ex;" data-src="https://wikimedia.org/api/rest_v1/media/math/render/svg/5423040452ebf9655fc482a84a1e3470d6dfa2ae" data-alt="{\displaystyle n+2^{m}}" data-class="mwe-math-fallback-image-inline mw-invert skin-invert">&nbsp;</span></span></i>) ou <i>O</i>(<i><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"> <math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle nm}"><semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi> n </mi> <mi> m </mi> </mstyle> </mrow> <annotation encoding="application/x-tex"> {\displaystyle nm} </annotation> </semantics> </math></span> <noscript> <img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/f2ef477a8b346bb37390e1b888b3ca888d184b61" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.435ex; height:1.676ex;" alt="{\displaystyle nm}"> </noscript><span class="lazy-image-placeholder" style="width: 3.435ex;height: 1.676ex;vertical-align: -0.338ex;" data-src="https://wikimedia.org/api/rest_v1/media/math/render/svg/f2ef477a8b346bb37390e1b888b3ca888d184b61" data-alt="{\displaystyle nm}" data-class="mwe-math-fallback-image-inline mw-invert skin-invert">&nbsp;</span></span></i>), dependendo dos detalhes de implementação. Esse algoritmo é rápido, mas pode ser usado somente para casamentos e não para a nova chamada de grupos de captura, quantificação preguiçosa e diversas outras funcionalidades encontradas nas bibliotecas modernas de expressões regulares. Também é possível executar a máquina não determinística diretamente, construindo cada estado da máquina determinística quando necessário e então descartando-o no próximo passo. Isso evita a quantidade exponencial de memória necessária para a construção completa da máquina determinística, ainda que garantindo a busca em tempo linear.<sup id="cite_ref-9" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-9"><span>[</span>9<span>]</span></a></sup></p> <p>O outro algoritmo é casar o padrão com a cadeia de caracteres através de <i><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Backtracking?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Backtracking">backtracking</a></i>. Geralmente chamado de NFA, Seu tempo de execução pode ser <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Complexidade_exponencial?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Complexidade exponencial">exponencial</a>, o que pode acontecer em implementações simples no casamento de expressões como <code>(a|aa)*b</code>, que forçam o algoritmo a considerar um número exponencial de subcasos. Implementações modernas geralmente identificam tais casos, e aceleram e abortam a execução. Apesar dessas implementações com <i>backtracking</i> garantirem tempo exponencial no pior caso, elas fornecem mais flexibilidade e poder de expressão.</p> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(7)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Relacionamento_com_Unicode">Relacionamento com Unicode</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=16&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Relacionamento com Unicode" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-7 collapsible-block" id="mf-section-7"> <p>Originalmente, as expressões regulares eram usadas com caracteres <a href="https://pt-m-wikipedia-org.translate.goog/wiki/American_Standard_Code_for_Information_Interchange?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="American Standard Code for Information Interchange">ASCII</a>, mas várias implementações atuais suportam <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Unicode?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Unicode">Unicode</a>. Na maioria dos casos não há diferença entre conjuntos de caracteres, mas algumas questões são relevantes ao suportar Unicode.</p> <p>Uma delas é a codificação suportada, já que algumas implementações esperam <a href="https://pt-m-wikipedia-org.translate.goog/wiki/UTF-8?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="UTF-8">UTF-8</a>, enquanto outras podem esperar <a href="https://pt-m-wikipedia-org.translate.goog/wiki/UTF-16?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="UTF-16">UTF-16</a> ou <a href="https://pt-m-wikipedia-org.translate.goog/wiki/UTF-32?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="UTF-32">UTF-32</a>. Outra questão é estender as funcionalidades disponíveis para ASCII no Unicode. Por exemplo, em implementações ASCII, conjuntos de caracteres na forma <code>[x-y]</code> são válidos para quaisquer <i>x</i> e <i>y</i> no intervalo [0x00,0x7F] desde que o código de <i>x</i> seja menor que o código de <i>y</i>. A escolha natural seria permitir o mesmo em Unicode no intervalo de códigos [0,0x10FFFF], o que não é possível pois algumas implementações não permitem que conjuntos de caracteres ultrapassem os blocos de código disponíveis.</p> <p>Do ponto de vista dos detalhes técnicos do Unicode, também surgem questões. Como a normalização, pois, em Unicode, mais de um código pode representar o mesmo caractere. Por exemplo, o caractere "<a href="https://pt-m-wikipedia-org.translate.goog/wiki/%C3%89?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="É">é</a>" pode ser representado por U+0065 (letra latina "<a href="https://pt-m-wikipedia-org.translate.goog/wiki/E?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="E">e</a>" minúsculo) combinado com U+0301 (diacrítico "<a href="https://pt-m-wikipedia-org.translate.goog/wiki/Acento_agudo?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Acento agudo">acento agudo</a>"), mas também pode ser representado como U+00E9 (letra latina "e" com diacrítico "acento agudo"). Também há os códigos de controle Unicode, as marcas de ordem de byte e as marcas de direção de texto, que devem ser tratados separadamente.</p> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(8)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Uso">Uso</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=17&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Uso" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-8 collapsible-block" id="mf-section-8"> <p>Expressões regulares são usadas por diversos <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Editor_de_texto?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editor de texto">editores de texto</a>, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Utilit%C3%A1rio?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Utilitário">utilitários</a> e <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_de_programa%C3%A7%C3%A3o?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem de programação">linguagens de programação</a> para procurar e manipular texto baseado em padrões. Por exemplo, <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Perl?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Perl">Perl</a> e <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Tcl?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Tcl">Tcl</a> possuem suporte a expressões regulares nativamente. Diversos utilitários de distribuições <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Unix?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Unix">Unix</a> incluem o editor de texto <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ed_(software)?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Ed (software)">ed</a>, que popularizou o conceito de expressão regular, e o filtro <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Grep?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Grep">grep</a>.</p> <p>Outro uso é a validação de formatos de texto (validação de protocolos ou formatos digitais). Por exemplo, ao receber a entrada dum campo de formulário duma aplicação que supõe receber um endereço de <i><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Email?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-redirect" title="Email">email</a></i>, pode-se usar uma expressão regular para garantir que o que foi recebido de fato é um endereço de <i>email</i>.</p> <p>Mais um uso é a implementação interna dum sistema de <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Realce_de_sintaxe?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Realce de sintaxe">realce de sintaxe</a>, como encontrado em <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ambiente_de_desenvolvimento_integrado?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Ambiente de desenvolvimento integrado">ambientes de desenvolvimento integrado</a>. Expressões regulares podem ser usadas para encontrar <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Palavra_reservada?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Palavra reservada">palavras reservadas</a>, literais e outros tokens específicos, e para alterar a formatação do texto de acordo com o casamento feito.</p> <p>Um uso difundido de expressões regulares é a filtragem de informação em bancos de dados de texto. Por exemplo, num arquivo de texto contendo cadastros de pessoas e suas datas de aniversário como a seguir:</p> <ul> <li>1954-10-01 João Alberto</li> <li>1976-07-25 Maria Eduarda</li> <li>1966-10-22 Carlos Silva</li> </ul> <p>Pode-se filtrar pessoas que nasceram num determinado ano, mês ou dia. Por exemplo, o uso do padrão <code>^[0-9]{4}-10-[0-9]{2} (.*)$</code> identifica o nome das pessoas que nasceram em outubro (mês 10). Para o cadastro acima seriam retornados dois grupos de captura, <code>\1</code> contendo "<i>João Alberto</i>" e <code>\2</code> contendo "<i>Carlos Silva</i>". Explorando o exemplo anterior e o uso de validação de formatos digitais, é possível usar expressões regulares para validar as datas presentes no arquivo de texto de aniversários acima. O padrão <code>(19|20)\d\d([- /.])(0[1-9]|1[012])\2([012][0-9]|3[01])</code> é usado para validar uma data entre 1900-01-01 e 2099-12-31.<sup id="cite_ref-10" class="reference"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_note-10"><span>[</span>10<span>]</span></a></sup> Atentar que a separação entre ano, mês e dia pode se dar através de hífen, espaço em branco, barra ou ponto. Mas deve-se usar o mesmo símbolo de separação entre ano e mês e entre mês e dia, o que é possível através da nova chamada do grupo de captura anterior (o trecho <code>\2</code> do padrão). Atentar também que o padrão é incompleto na medida em que não diferencia a quantidade de dias em cada mês, o que resulta no casamento de até "<i>2000-02-31</i>" (31 de fevereiro), incorreta de acordo com o <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Calend%C3%A1rio_gregoriano?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Calendário gregoriano">calendário gregoriano</a>.</p> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(9)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Ver_também"><span id="Ver_tamb.C3.A9m"></span>Ver também</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=18&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Ver também" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-9 collapsible-block" id="mf-section-9"> <ul> <li><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Editor_de_texto?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editor de texto">Editor de texto</a></li> <li><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Teoria_da_computa%C3%A7%C3%A3o?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Teoria da computação">Teoria da computação</a></li> <li><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Aut%C3%B4mato?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Autômato">Autômato</a></li> <li><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Linguagem_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Linguagem regular">Linguagem regular</a></li> <li><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Casamento_de_padr%C3%B5es?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Casamento de padrões">Casamento de padrões</a></li> </ul> </section> <h2 id="Referências" style="cursor: help;" title="Esta seção foi configurada para não ser editável diretamente. Edite a página toda ou a seção anterior em vez disso." class="section-heading" onclick="mfTempOpenSection(10)"><span class="indicator mf-icon mf-icon-expand mf-icon--small"></span><span id="Refer.C3.AAncias"></span>Referências</h2> <section class="mf-section-10 collapsible-block" id="mf-section-10"> <div class="reflist" style="list-style-type: decimal;"> <div class="mw-references-wrap"> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-1">↑</a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://www.regular-expressions.info/tutorial.html">«Regular Expression Tutorial - Learn How to Use Regular Expressions»</a>. <i>www.regular-expressions.info</i><span class="reference-accessdate">. Consultado em 16 de dezembro de 2023</span></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.atitle=Regular+Expression+Tutorial+-+Learn+How+to+Use+Regular+Expressions&amp;rft.genre=unknown&amp;rft.jtitle=www.regular-expressions.info&amp;rft_id=https%3A%2F%2Fwww.regular-expressions.info%2Ftutorial.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-2">↑</a></span> <span class="reference-text"><cite class="citation web"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Larry_Wall?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Larry Wall">Larry Wall</a> e o time de desenvolvimento do Perl 5 (2006). <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://perldoc.perl.org/perlre.html">«perlre: Perl regular expressions»</a> (em inglês)</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Larry+Wall+e+o+time+de+desenvolvimento+do+Perl+5&amp;rft.btitle=perlre%3A+Perl+regular+expressions&amp;rft.date=2006&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fperldoc.perl.org%2Fperlre.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> <li id="cite_note-Apocalypse5-3"><span class="mw-cite-backlink"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-Apocalypse5_3-0">↑</a></span> <span class="reference-text"><cite class="citation web"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Larry_Wall?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Larry Wall">Larry Wall</a> (4 de junho de 2002). <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://dev.perl.org/perl6/doc/design/apo/A05.html">«Apocalypse 5: Pattern Matching»</a> (em inglês)</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Larry+Wall&amp;rft.btitle=Apocalypse+5%3A+Pattern+Matching&amp;rft.date=2002-06-04&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fdev.perl.org%2Fperl6%2Fdoc%2Fdesign%2Fapo%2FA05.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> <li id="cite_note-4"><span class="mw-cite-backlink"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-4">↑</a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://www.php.net/manual/en/intro.regex.php">«POSIX Regex: Introduction»</a> (em inglês). 18 de julho de 2008<span class="reference-accessdate">. Consultado em 24 de julho de 2008</span></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.btitle=POSIX+Regex%3A+Introduction&amp;rft.date=2008-07-18&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.php.net%2Fmanual%2Fen%2Fintro.regex.php&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> <li id="cite_note-doc_perl-5"><span class="mw-cite-backlink">↑ <sup><i><b><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-doc_perl_5-0">a</a></b></i></sup> <sup><i><b><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-doc_perl_5-1">b</a></b></i></sup></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://perldoc.perl.org/perlre.html">«Perl 5.10.0 documentation»</a> (em inglês)<span class="reference-accessdate">. Consultado em 25 de julho de 2008</span></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.btitle=Perl+5.10.0+documentation&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fperldoc.perl.org%2Fperlre.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> <li id="cite_note-6"><span class="mw-cite-backlink"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-6">↑</a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://java.sun.com/docs/books/tutorial/essential/regex/index.html">«Lesson: Regular Expressions»</a>. <i>The Java Tutorials</i> (em inglês). <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Sun_Microsystems?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Sun Microsystems">Sun Microsystems</a><span class="reference-accessdate">. Consultado em 25 de julho de 2008</span></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.atitle=Lesson%3A+Regular+Expressions&amp;rft.genre=unknown&amp;rft.jtitle=The+Java+Tutorials&amp;rft_id=http%3A%2F%2Fjava.sun.com%2Fdocs%2Fbooks%2Ftutorial%2Fessential%2Fregex%2Findex.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> <li id="cite_note-7"><span class="mw-cite-backlink"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-7">↑</a></span> <span class="reference-text"><cite class="citation web">A.M. Kuchling (19 de julho de 2008). <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://docs.python.org/dev/howto/regex.html">«Regular Expression HOWTO»</a>. <i>Documentação do Python</i> (em inglês). <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Python_Software_Foundation?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Python Software Foundation">Python Software Foundation</a><span class="reference-accessdate">. Consultado em 24 de julho de 2008</span></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.atitle=Regular+Expression+HOWTO&amp;rft.au=A.M.+Kuchling&amp;rft.date=2008-07-19&amp;rft.genre=unknown&amp;rft.jtitle=Documenta%C3%A7%C3%A3o+do+Python&amp;rft_id=http%3A%2F%2Fdocs.python.org%2Fdev%2Fhowto%2Fregex.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> <li id="cite_note-8"><span class="mw-cite-backlink"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-8">↑</a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://msdn.microsoft.com/en-us/library/hs600312(VS.71).aspx">«.NET Framework Regular Expressions»</a>. <i>.NET Framework Developer's Guide</i> (em inglês). <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Microsoft?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Microsoft">Microsoft</a><span class="reference-accessdate">. Consultado em 25 de julho de 2008</span></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.atitle=.NET+Framework+Regular+Expressions&amp;rft.genre=unknown&amp;rft.jtitle=.NET+Framework+Developer%27s+Guide&amp;rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fhs600312%28VS.71%29.aspx&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> <li id="cite_note-9"><span class="mw-cite-backlink"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-9">↑</a></span> <span class="reference-text"><cite class="citation web">Russ Cox (Janeiro de 2007). <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://swtch.com/~rsc/regexp/regexp1.html">«Regular Expression Matching Can Be Simple and Fast»</a> (em inglês)<span class="reference-accessdate">. Consultado em 20 de julho de 2008</span></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Russ+Cox&amp;rft.btitle=Regular+Expression+Matching+Can+Be+Simple+and+Fast&amp;rft.date=2007-01&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fswtch.com%2F~rsc%2Fregexp%2Fregexp1.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> <li id="cite_note-10"><span class="mw-cite-backlink"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Express%C3%A3o_regular?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB#cite_ref-10">↑</a></span> <span class="reference-text"><cite class="citation web">Jan Goyvaerts (14 de março de 2008). <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://www.regular-expressions.info/dates.html">«Example: Regular Expression Matching a Valid Date»</a> (em inglês)<span class="reference-accessdate">. Consultado em 25 de julho de 2008</span></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Jan+Goyvaerts&amp;rft.btitle=Example%3A+Regular+Expression+Matching+a+Valid+Date&amp;rft.date=2008-03-14&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.regular-expressions.info%2Fdates.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></span></li> </ol> </div> </div> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(11)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Bibliografia">Bibliografia</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=19&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Bibliografia" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-11 collapsible-block" id="mf-section-11"> <ul> <li><cite class="citation web"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://www.opengroup.org/onlinepubs/007908799/xbd/re.html">«Regular Expressions»</a> (em inglês). The Open Group. 1997<span class="reference-accessdate">. Consultado em 19 de julho de 2008</span></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.btitle=Regular+Expressions&amp;rft.date=1997&amp;rft.genre=unknown&amp;rft.pub=The+Open+Group&amp;rft_id=http%3A%2F%2Fwww.opengroup.org%2Fonlinepubs%2F007908799%2Fxbd%2Fre.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></li> <li><cite class="citation book">Aurélio Marinho Jargas (2009). <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://www.piazinho.com.br"><i>Expressões Regulares - Uma Abordagem Divertida</i></a> 3 ed. [S.l.]: Novatec. 208&nbsp;páginas. <a href="https://pt-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a>&nbsp;<a href="https://pt-m-wikipedia-org.translate.goog/wiki/Especial:Fontes_de_livros/978-85-7522-212-6?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Especial:Fontes de livros/978-85-7522-212-6">978-85-7522-212-6</a></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Aur%C3%A9lio+Marinho+Jargas&amp;rft.btitle=Express%C3%B5es+Regulares+-+Uma+Abordagem+Divertida&amp;rft.date=2009&amp;rft.edition=3&amp;rft.genre=book&amp;rft.pub=Novatec&amp;rft_id=http%3A%2F%2Fwww.piazinho.com.br&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></li> <li><cite class="citation book">Ben Forta. <i>Sams Teach Yourself Regular Expressions in 10 Minutes</i>. [S.l.]: Sams. <a href="https://pt-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a>&nbsp;<a href="https://pt-m-wikipedia-org.translate.goog/wiki/Especial:Fontes_de_livros/0-672-32566-7?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Especial:Fontes de livros/0-672-32566-7">0-672-32566-7</a></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Ben+Forta&amp;rft.btitle=Sams+Teach+Yourself+Regular+Expressions+in+10+Minutes&amp;rft.genre=book&amp;rft.pub=Sams&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></li> <li><cite class="citation book">Jeffrey Friedl. <i>Mastering Regular Expressions</i>. [S.l.]: <a href="https://pt-m-wikipedia-org.translate.goog/wiki/O%27Reilly_Media?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="O'Reilly Media">O'Reilly</a>. <a href="https://pt-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a>&nbsp;<a href="https://pt-m-wikipedia-org.translate.goog/wiki/Especial:Fontes_de_livros/0-596-00289-0?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Especial:Fontes de livros/0-596-00289-0">0-596-00289-0</a></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Jeffrey+Friedl&amp;rft.btitle=Mastering+Regular+Expressions&amp;rft.genre=book&amp;rft.pub=O%27Reilly&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></li> <li><cite class="citation book">Mehran Habibi. <i>Real World Regular Expressions with Java 1.4</i>. [S.l.]: Springer. <a href="https://pt-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a>&nbsp;<a href="https://pt-m-wikipedia-org.translate.goog/wiki/Especial:Fontes_de_livros/1-59059-107-0?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Especial:Fontes de livros/1-59059-107-0">1-59059-107-0</a></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Mehran+Habibi&amp;rft.btitle=Real+World+Regular+Expressions+with+Java+1.4&amp;rft.genre=book&amp;rft.pub=Springer&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></li> <li><cite class="citation book">Francois Liger; Craig McQueen, Paul Wilton. <i>Visual Basic .NET Text Manipulation Handbook</i>. [S.l.]: <a href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Wrox_Press&amp;action=edit&amp;redlink=1&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="new" title="Wrox Press (página não existe)">Wrox Press</a>. <a href="https://pt-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a>&nbsp;<a href="https://pt-m-wikipedia-org.translate.goog/wiki/Especial:Fontes_de_livros/1-86100-730-2?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Especial:Fontes de livros/1-86100-730-2">1-86100-730-2</a></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Francois+Liger%3B+Craig+McQueen%2C+Paul+Wilton&amp;rft.btitle=Visual+Basic+.NET+Text+Manipulation+Handbook&amp;rft.genre=book&amp;rft.pub=Wrox+Press&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span><span class="citation-comment" style="display:none; color:#33aa33"> !CS1 manut: Nomes múltiplos: lista de autores (<a href="https://pt-m-wikipedia-org.translate.goog/wiki/Categoria:!CS1_manut:_Nomes_m%C3%BAltiplos:_lista_de_autores?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Categoria:!CS1 manut: Nomes múltiplos: lista de autores">link</a>)</span></li> <li><cite class="citation book">Michael Sipser. <i>Introduction to the Theory of Computation</i>. [S.l.]: PWS Publishing. pp.&nbsp;31–90. <a href="https://pt-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a>&nbsp;<a href="https://pt-m-wikipedia-org.translate.goog/wiki/Especial:Fontes_de_livros/0-534-94728-X?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Especial:Fontes de livros/0-534-94728-X">0-534-94728-X</a></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Michael+Sipser&amp;rft.btitle=Introduction+to+the+Theory+of+Computation&amp;rft.genre=book&amp;rft.pages=31-90&amp;rft.pub=PWS+Publishing&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></li> <li><cite class="citation book">Tony Stubblebine. <i>Regular Expression Pocket Reference</i>. [S.l.]: O'Reilly. <a href="https://pt-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a>&nbsp;<a href="https://pt-m-wikipedia-org.translate.goog/wiki/Especial:Fontes_de_livros/0-596-00415-X?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Especial:Fontes de livros/0-596-00415-X">0-596-00415-X</a></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fpt.wikipedia.org%3AExpress%C3%A3o+regular&amp;rft.au=Tony+Stubblebine&amp;rft.btitle=Regular+Expression+Pocket+Reference&amp;rft.genre=book&amp;rft.pub=O%27Reilly&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&nbsp;</span></span></li> </ul> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(12)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Ligações_externas"><span id="Liga.C3.A7.C3.B5es_externas"></span>Ligações externas</h2><span class="mw-editsection"> <a role="button" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=edit&amp;section=20&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Editar secção: Ligações externas" class="cdx-button cdx-button--size-large cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--icon-only cdx-button--weight-quiet "> <span class="minerva-icon minerva-icon--edit"></span> <span>editar</span> </a> </span> </div> <section class="mf-section-12 collapsible-block" id="mf-section-12"> <div class="noprint" style="clear: right; border: solid #aaa 1px; margin: 0 0 1em 1em; font-size: 90%; background: var(--background-color-neutral-subtle, #f9f9f9); color: inherit; width: 238px; padding: 5px; spacing: 2px; text-align: center; float: right;"> <div style="float: left; vertical-align:middle;"> <figure class="mw-halign-none" typeof="mw:File"> <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Ficheiro:Wikibooks-logo.svg?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" class="mw-file-description" title="Wikilivros"> <noscript> <img alt="Wikilivros" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/28px-Wikibooks-logo.svg.png" decoding="async" width="28" height="28" class="mw-file-element" data-file-width="300" data-file-height="300"> </noscript><span class="lazy-image-placeholder" style="width: 28px;height: 28px;" data-src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/28px-Wikibooks-logo.svg.png" data-alt="Wikilivros" data-width="28" data-height="28" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/42px-Wikibooks-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/56px-Wikibooks-logo.svg.png 2x" data-class="mw-file-element">&nbsp;</span></a> <figcaption> Wikilivros </figcaption> </figure> </div> <div style="margin-left: 30px; line-height:normal; vertical-align:middle;"> O <a href="https://pt-m-wikipedia-org.translate.goog/wiki/Wikilivros?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB" title="Wikilivros">Wikilivros</a> tem um livro chamado <i><b><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://pt.wikibooks.org/wiki/Special:Search/Express%25C3%25B5es_regulares" class="extiw" title="b:Special:Search/Expressões regulares">Expressões regulares</a></b></i> </div> </div> <ul> <li><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://guia-er.sourceforge.net">Manual de Regex</a></li> <li><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://aurelio.net/er">Portal sobre expressões regulares</a></li> <li><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=http://www.regex.pro.br">Wiki sobre expressões regulares</a></li> </ul><!-- NewPP limit report Parsed by mw‐web.eqiad.main‐559c9fd9f4‐mb4xv Cached time: 20241126135031 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.356 seconds Real time usage: 0.638 seconds Preprocessor visited node count: 2600/1000000 Post‐expand include size: 38266/2097152 bytes Template argument size: 2139/2097152 bytes Highest expansion depth: 18/100 Expensive parser function count: 4/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 10680/5000000 bytes Lua time usage: 0.208/10.000 seconds Lua memory usage: 7059178/52428800 bytes Number of Wikibase entities loaded: 5/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 380.593 1 -total 49.84% 189.700 1 Predefinição:Controle_de_autoridade 28.49% 108.413 1 Predefinição:Referências 26.34% 100.231 11 Predefinição:Citar_web 15.05% 57.290 7 Predefinição:Citar_livro 9.57% 36.405 7 Predefinição:ISBN 6.54% 24.898 7 Predefinição:Identificador_de_obras_de_referência 2.54% 9.660 21 Predefinição:Yesno-no 1.84% 7.019 28 Predefinição:Yesno 1.73% 6.585 1 Predefinição:Categorização_AD_e_AB_de_outras_wikis --> <!-- Saved in parser cache with key ptwiki:pcache:754:|#|:idhash:canonical and timestamp 20241126135031 and revision id 67928626. Rendering was triggered because: page-view --> </section> </div><!-- MobileFormatter took 0.013 seconds --><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --> <noscript> <img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=mobile&amp;type=1x1&amp;usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"> </noscript> <div class="printfooter" data-nosnippet=""> Obtida de "<a dir="ltr" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://pt.wikipedia.org/w/index.php?title%3DExpress%C3%A3o_regular%26oldid%3D67928626">https://pt.wikipedia.org/w/index.php?title=Expressão_regular&amp;oldid=67928626</a>" </div> </div> </div> <div class="post-content" id="page-secondary-actions"> </div> </main> <footer class="mw-footer minerva-footer" role="contentinfo"><a class="last-modified-bar" href="https://pt-m-wikipedia-org.translate.goog/w/index.php?title=Express%C3%A3o_regular&amp;action=history&amp;_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB"> <div class="post-content last-modified-bar__content"><span class="minerva-icon minerva-icon-size-medium minerva-icon--modified-history"></span> <span class="last-modified-bar__text modified-enhancement" data-user-name="Cosmo Skerry" data-user-gender="male" data-timestamp="1715444441"> <span>Última edição a 11 de maio de 2024, às 16h20min</span> </span> <span class="minerva-icon minerva-icon-size-small minerva-icon--expand"></span> </div></a> <div class="post-content footer-content"> <div id="mw-data-after-content"> <div class="read-more-container"></div> </div> <div id="p-lang"> <h4>Línguas</h4> <section> <ul id="p-variants" class="minerva-languages"></ul> <ul class="minerva-languages"> <li class="interlanguage-link interwiki-af mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://af.wikipedia.org/wiki/Regul%25C3%25AAre_uitdrukking" title="Regulêre uitdrukking — africanês" lang="af" hreflang="af" data-title="Regulêre uitdrukking" data-language-autonym="Afrikaans" data-language-local-name="africanês" class="interlanguage-link-target"><span>Afrikaans</span></a></li> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ar.wikipedia.org/wiki/%25D8%25AA%25D8%25B9%25D8%25A8%25D9%258A%25D8%25B1_%25D9%2586%25D9%2585%25D8%25B7%25D9%258A" title="تعبير نمطي — árabe" lang="ar" hreflang="ar" data-title="تعبير نمطي" data-language-autonym="العربية" data-language-local-name="árabe" class="interlanguage-link-target"><span>العربية</span></a></li> <li class="interlanguage-link interwiki-az mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://az.wikipedia.org/wiki/Requlyar_ifad%25C9%2599" title="Requlyar ifadə — azerbaijano" lang="az" hreflang="az" data-title="Requlyar ifadə" data-language-autonym="Azərbaycanca" data-language-local-name="azerbaijano" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li> <li class="interlanguage-link interwiki-bar mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://bar.wikipedia.org/wiki/Regex" title="Regex — Bavarian" lang="bar" hreflang="bar" data-title="Regex" data-language-autonym="Boarisch" data-language-local-name="Bavarian" class="interlanguage-link-target"><span>Boarisch</span></a></li> <li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://bg.wikipedia.org/wiki/%25D0%25A0%25D0%25B5%25D0%25B3%25D1%2583%25D0%25BB%25D1%258F%25D1%2580%25D0%25B5%25D0%25BD_%25D0%25B8%25D0%25B7%25D1%2580%25D0%25B0%25D0%25B7" title="Регулярен израз — búlgaro" lang="bg" hreflang="bg" data-title="Регулярен израз" data-language-autonym="Български" data-language-local-name="búlgaro" class="interlanguage-link-target"><span>Български</span></a></li> <li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://bn.wikipedia.org/wiki/%25E0%25A6%25B0%25E0%25A7%2587%25E0%25A6%2597%25E0%25A7%2581%25E0%25A6%25B2%25E0%25A6%25BE%25E0%25A6%25B0_%25E0%25A6%258F%25E0%25A6%2595%25E0%25A7%258D%25E0%25A6%25B8%25E0%25A6%25AA%25E0%25A7%258D%25E0%25A6%25B0%25E0%25A7%2587%25E0%25A6%25B6%25E0%25A6%25A8" title="রেগুলার এক্সপ্রেশন — bengalês" lang="bn" hreflang="bn" data-title="রেগুলার এক্সপ্রেশন" data-language-autonym="বাংলা" data-language-local-name="bengalês" class="interlanguage-link-target"><span>বাংলা</span></a></li> <li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ca.wikipedia.org/wiki/Expressi%25C3%25B3_regular" title="Expressió regular — catalão" lang="ca" hreflang="ca" data-title="Expressió regular" data-language-autonym="Català" data-language-local-name="catalão" class="interlanguage-link-target"><span>Català</span></a></li> <li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://cs.wikipedia.org/wiki/Regul%25C3%25A1rn%25C3%25AD_v%25C3%25BDraz" title="Regulární výraz — checo" lang="cs" hreflang="cs" data-title="Regulární výraz" data-language-autonym="Čeština" data-language-local-name="checo" class="interlanguage-link-target"><span>Čeština</span></a></li> <li class="interlanguage-link interwiki-da mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://da.wikipedia.org/wiki/Regul%25C3%25A6rt_udtryk" title="Regulært udtryk — dinamarquês" lang="da" hreflang="da" data-title="Regulært udtryk" data-language-autonym="Dansk" data-language-local-name="dinamarquês" class="interlanguage-link-target"><span>Dansk</span></a></li> <li class="interlanguage-link interwiki-de mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://de.wikipedia.org/wiki/Regul%25C3%25A4rer_Ausdruck" title="Regulärer Ausdruck — alemão" lang="de" hreflang="de" data-title="Regulärer Ausdruck" data-language-autonym="Deutsch" data-language-local-name="alemão" class="interlanguage-link-target"><span>Deutsch</span></a></li> <li class="interlanguage-link interwiki-el mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://el.wikipedia.org/wiki/%25CE%259A%25CE%25B1%25CE%25BD%25CE%25BF%25CE%25BD%25CE%25B9%25CE%25BA%25CE%25AE_%25CE%25AD%25CE%25BA%25CF%2586%25CF%2581%25CE%25B1%25CF%2583%25CE%25B7" title="Κανονική έκφραση — grego" lang="el" hreflang="el" data-title="Κανονική έκφραση" data-language-autonym="Ελληνικά" data-language-local-name="grego" class="interlanguage-link-target"><span>Ελληνικά</span></a></li> <li class="interlanguage-link interwiki-en mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://en.wikipedia.org/wiki/Regular_expression" title="Regular expression — inglês" lang="en" hreflang="en" data-title="Regular expression" data-language-autonym="English" data-language-local-name="inglês" class="interlanguage-link-target"><span>English</span></a></li> <li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://eo.wikipedia.org/wiki/Regula_esprimo" title="Regula esprimo — esperanto" lang="eo" hreflang="eo" data-title="Regula esprimo" data-language-autonym="Esperanto" data-language-local-name="esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li> <li class="interlanguage-link interwiki-es mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://es.wikipedia.org/wiki/Expresi%25C3%25B3n_regular" title="Expresión regular — espanhol" lang="es" hreflang="es" data-title="Expresión regular" data-language-autonym="Español" data-language-local-name="espanhol" class="interlanguage-link-target"><span>Español</span></a></li> <li class="interlanguage-link interwiki-et mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://et.wikipedia.org/wiki/Regulaaravaldis" title="Regulaaravaldis — estónio" lang="et" hreflang="et" data-title="Regulaaravaldis" data-language-autonym="Eesti" data-language-local-name="estónio" class="interlanguage-link-target"><span>Eesti</span></a></li> <li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://eu.wikipedia.org/wiki/Adierazpen_erregular" title="Adierazpen erregular — basco" lang="eu" hreflang="eu" data-title="Adierazpen erregular" data-language-autonym="Euskara" data-language-local-name="basco" class="interlanguage-link-target"><span>Euskara</span></a></li> <li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://fa.wikipedia.org/wiki/%25D8%25B9%25D8%25A8%25D8%25A7%25D8%25B1%25D8%25AA_%25D8%25A8%25D8%25A7%25D9%2582%25D8%25A7%25D8%25B9%25D8%25AF%25D9%2587" title="عبارت باقاعده — persa" lang="fa" hreflang="fa" data-title="عبارت باقاعده" data-language-autonym="فارسی" data-language-local-name="persa" class="interlanguage-link-target"><span>فارسی</span></a></li> <li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://fi.wikipedia.org/wiki/S%25C3%25A4%25C3%25A4nn%25C3%25B6llinen_lauseke" title="Säännöllinen lauseke — finlandês" lang="fi" hreflang="fi" data-title="Säännöllinen lauseke" data-language-autonym="Suomi" data-language-local-name="finlandês" class="interlanguage-link-target"><span>Suomi</span></a></li> <li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://fr.wikipedia.org/wiki/Expression_r%25C3%25A9guli%25C3%25A8re" title="Expression régulière — francês" lang="fr" hreflang="fr" data-title="Expression régulière" data-language-autonym="Français" data-language-local-name="francês" class="interlanguage-link-target"><span>Français</span></a></li> <li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://gl.wikipedia.org/wiki/Expresi%25C3%25B3n_regular" title="Expresión regular — galego" lang="gl" hreflang="gl" data-title="Expresión regular" data-language-autonym="Galego" data-language-local-name="galego" class="interlanguage-link-target"><span>Galego</span></a></li> <li class="interlanguage-link interwiki-he mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://he.wikipedia.org/wiki/%25D7%2591%25D7%2599%25D7%2598%25D7%2595%25D7%2599_%25D7%25A8%25D7%2592%25D7%2595%25D7%259C%25D7%25A8%25D7%2599" title="ביטוי רגולרי — hebraico" lang="he" hreflang="he" data-title="ביטוי רגולרי" data-language-autonym="עברית" data-language-local-name="hebraico" class="interlanguage-link-target"><span>עברית</span></a></li> <li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://hi.wikipedia.org/wiki/%25E0%25A4%25B0%25E0%25A5%2587%25E0%25A4%2597%25E0%25A5%258D%25E0%25A4%25AF%25E0%25A5%2581%25E0%25A4%25B2%25E0%25A4%25B0_%25E0%25A4%258D%25E0%25A4%2595%25E0%25A5%258D%25E0%25A4%25B8%25E0%25A4%25AA%25E0%25A5%258D%25E0%25A4%25B0%25E0%25A5%2588%25E0%25A4%25B6%25E0%25A4%25A8" title="रेग्युलर ऍक्सप्रैशन — hindi" lang="hi" hreflang="hi" data-title="रेग्युलर ऍक्सप्रैशन" data-language-autonym="हिन्दी" data-language-local-name="hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li> <li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://hr.wikipedia.org/wiki/Regularni_izraz" title="Regularni izraz — croata" lang="hr" hreflang="hr" data-title="Regularni izraz" data-language-autonym="Hrvatski" data-language-local-name="croata" class="interlanguage-link-target"><span>Hrvatski</span></a></li> <li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://hu.wikipedia.org/wiki/Regul%25C3%25A1ris_kifejez%25C3%25A9s" title="Reguláris kifejezés — húngaro" lang="hu" hreflang="hu" data-title="Reguláris kifejezés" data-language-autonym="Magyar" data-language-local-name="húngaro" class="interlanguage-link-target"><span>Magyar</span></a></li> <li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://hy.wikipedia.org/wiki/%25D4%25BF%25D5%25A1%25D5%25B6%25D5%25B8%25D5%25B6%25D5%25A1%25D5%25BE%25D5%25B8%25D6%2580_%25D5%25A1%25D6%2580%25D5%25BF%25D5%25A1%25D5%25B0%25D5%25A1%25D5%25B5%25D5%25BF%25D5%25B8%25D6%2582%25D5%25A9%25D5%25B5%25D5%25B8%25D6%2582%25D5%25B6%25D5%25B6%25D5%25A5%25D6%2580" title="Կանոնավոր արտահայտություններ — arménio" lang="hy" hreflang="hy" data-title="Կանոնավոր արտահայտություններ" data-language-autonym="Հայերեն" data-language-local-name="arménio" class="interlanguage-link-target"><span>Հայերեն</span></a></li> <li class="interlanguage-link interwiki-id mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://id.wikipedia.org/wiki/Ekspresi_reguler" title="Ekspresi reguler — indonésio" lang="id" hreflang="id" data-title="Ekspresi reguler" data-language-autonym="Bahasa Indonesia" data-language-local-name="indonésio" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li> <li class="interlanguage-link interwiki-is mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://is.wikipedia.org/wiki/Regluleg_seg%25C3%25B0" title="Regluleg segð — islandês" lang="is" hreflang="is" data-title="Regluleg segð" data-language-autonym="Íslenska" data-language-local-name="islandês" class="interlanguage-link-target"><span>Íslenska</span></a></li> <li class="interlanguage-link interwiki-it mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://it.wikipedia.org/wiki/Espressione_regolare" title="Espressione regolare — italiano" lang="it" hreflang="it" data-title="Espressione regolare" data-language-autonym="Italiano" data-language-local-name="italiano" class="interlanguage-link-target"><span>Italiano</span></a></li> <li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ja.wikipedia.org/wiki/%25E6%25AD%25A3%25E8%25A6%258F%25E8%25A1%25A8%25E7%258F%25BE" title="正規表現 — japonês" lang="ja" hreflang="ja" data-title="正規表現" data-language-autonym="日本語" data-language-local-name="japonês" class="interlanguage-link-target"><span>日本語</span></a></li> <li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ka.wikipedia.org/wiki/%25E1%2583%25A0%25E1%2583%2594%25E1%2583%2592%25E1%2583%25A3%25E1%2583%259A%25E1%2583%2590%25E1%2583%25A0%25E1%2583%25A3%25E1%2583%259A%25E1%2583%2598_%25E1%2583%2592%25E1%2583%2590%25E1%2583%259B%25E1%2583%259D%25E1%2583%25A1%25E1%2583%2590%25E1%2583%25AE%25E1%2583%25A3%25E1%2583%259A%25E1%2583%2594%25E1%2583%2591%25E1%2583%2590" title="რეგულარული გამოსახულება — georgiano" lang="ka" hreflang="ka" data-title="რეგულარული გამოსახულება" data-language-autonym="ქართული" data-language-local-name="georgiano" class="interlanguage-link-target"><span>ქართული</span></a></li> <li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ko.wikipedia.org/wiki/%25EC%25A0%2595%25EA%25B7%259C_%25ED%2591%259C%25ED%2598%2584%25EC%258B%259D" title="정규 표현식 — coreano" lang="ko" hreflang="ko" data-title="정규 표현식" data-language-autonym="한국어" data-language-local-name="coreano" class="interlanguage-link-target"><span>한국어</span></a></li> <li class="interlanguage-link interwiki-ky mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ky.wikipedia.org/wiki/%25D0%25A0%25D0%25B5%25D0%25B3%25D1%2583%25D0%25BB%25D1%258F%25D1%2580%25D0%25B4%25D1%258B%25D0%25BA_%25D1%2582%25D1%2583%25D1%258E%25D0%25BD%25D1%2582%25D0%25BC%25D0%25B0" title="Регулярдык туюнтма — quirguiz" lang="ky" hreflang="ky" data-title="Регулярдык туюнтма" data-language-autonym="Кыргызча" data-language-local-name="quirguiz" class="interlanguage-link-target"><span>Кыргызча</span></a></li> <li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://lv.wikipedia.org/wiki/Regul%25C4%2581r%25C4%2581_izteiksme" title="Regulārā izteiksme — letão" lang="lv" hreflang="lv" data-title="Regulārā izteiksme" data-language-autonym="Latviešu" data-language-local-name="letão" class="interlanguage-link-target"><span>Latviešu</span></a></li> <li class="interlanguage-link interwiki-mk mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://mk.wikipedia.org/wiki/%25D0%25A0%25D0%25B5%25D0%25B3%25D1%2583%25D0%25BB%25D0%25B0%25D1%2580%25D0%25B5%25D0%25BD_%25D0%25B8%25D0%25B7%25D1%2580%25D0%25B0%25D0%25B7" title="Регуларен израз — macedónio" lang="mk" hreflang="mk" data-title="Регуларен израз" data-language-autonym="Македонски" data-language-local-name="macedónio" class="interlanguage-link-target"><span>Македонски</span></a></li> <li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ml.wikipedia.org/wiki/%25E0%25B4%25B1%25E0%25B5%2586%25E0%25B4%2597%25E0%25B5%2581%25E0%25B4%25B2%25E0%25B5%25BC_%25E0%25B4%258E%25E0%25B4%2595%25E0%25B5%258D%25E0%25B4%25B8%25E0%25B5%258D%25E0%25B4%25AA%25E0%25B5%258D%25E0%25B4%25B0%25E0%25B4%25B7%25E0%25B4%25A8%25E0%25B5%2581%25E0%25B4%2595%25E0%25B5%25BE" title="റെഗുലർ എക്സ്പ്രഷനുകൾ — malaiala" lang="ml" hreflang="ml" data-title="റെഗുലർ എക്സ്പ്രഷനുകൾ" data-language-autonym="മലയാളം" data-language-local-name="malaiala" class="interlanguage-link-target"><span>മലയാളം</span></a></li> <li class="interlanguage-link interwiki-mwl mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://mwl.wikipedia.org/wiki/Spresson_Regular" title="Spresson Regular — mirandês" lang="mwl" hreflang="mwl" data-title="Spresson Regular" data-language-autonym="Mirandés" data-language-local-name="mirandês" class="interlanguage-link-target"><span>Mirandés</span></a></li> <li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://nl.wikipedia.org/wiki/Reguliere_expressie" title="Reguliere expressie — neerlandês" lang="nl" hreflang="nl" data-title="Reguliere expressie" data-language-autonym="Nederlands" data-language-local-name="neerlandês" class="interlanguage-link-target"><span>Nederlands</span></a></li> <li class="interlanguage-link interwiki-no mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://no.wikipedia.org/wiki/Regul%25C3%25A6rt_uttrykk" title="Regulært uttrykk — norueguês bokmål" lang="nb" hreflang="nb" data-title="Regulært uttrykk" data-language-autonym="Norsk bokmål" data-language-local-name="norueguês bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li> <li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://pl.wikipedia.org/wiki/Wyra%25C5%25BCenie_regularne" title="Wyrażenie regularne — polaco" lang="pl" hreflang="pl" data-title="Wyrażenie regularne" data-language-autonym="Polski" data-language-local-name="polaco" class="interlanguage-link-target"><span>Polski</span></a></li> <li class="interlanguage-link interwiki-pnb mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://pnb.wikipedia.org/wiki/%25D8%25B1%25DB%258C%25D8%25AC%25DB%258C%25DA%25A9%25D8%25B3" title="ریجیکس — Western Punjabi" lang="pnb" hreflang="pnb" data-title="ریجیکس" data-language-autonym="پنجابی" data-language-local-name="Western Punjabi" class="interlanguage-link-target"><span>پنجابی</span></a></li> <li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ro.wikipedia.org/wiki/Expresie_regulat%25C4%2583" title="Expresie regulată — romeno" lang="ro" hreflang="ro" data-title="Expresie regulată" data-language-autonym="Română" data-language-local-name="romeno" class="interlanguage-link-target"><span>Română</span></a></li> <li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ru.wikipedia.org/wiki/%25D0%25A0%25D0%25B5%25D0%25B3%25D1%2583%25D0%25BB%25D1%258F%25D1%2580%25D0%25BD%25D1%258B%25D0%25B5_%25D0%25B2%25D1%258B%25D1%2580%25D0%25B0%25D0%25B6%25D0%25B5%25D0%25BD%25D0%25B8%25D1%258F" title="Регулярные выражения — russo" lang="ru" hreflang="ru" data-title="Регулярные выражения" data-language-autonym="Русский" data-language-local-name="russo" class="interlanguage-link-target"><span>Русский</span></a></li> <li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://simple.wikipedia.org/wiki/Regular_expression" title="Regular expression — Simple English" lang="en-simple" hreflang="en-simple" data-title="Regular expression" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li> <li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://sk.wikipedia.org/wiki/Regul%25C3%25A1rny_v%25C3%25BDraz" title="Regulárny výraz — eslovaco" lang="sk" hreflang="sk" data-title="Regulárny výraz" data-language-autonym="Slovenčina" data-language-local-name="eslovaco" class="interlanguage-link-target"><span>Slovenčina</span></a></li> <li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://sl.wikipedia.org/wiki/Regularni_izraz" title="Regularni izraz — esloveno" lang="sl" hreflang="sl" data-title="Regularni izraz" data-language-autonym="Slovenščina" data-language-local-name="esloveno" class="interlanguage-link-target"><span>Slovenščina</span></a></li> <li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://sq.wikipedia.org/wiki/Shprehje_e_rregullt" title="Shprehje e rregullt — albanês" lang="sq" hreflang="sq" data-title="Shprehje e rregullt" data-language-autonym="Shqip" data-language-local-name="albanês" class="interlanguage-link-target"><span>Shqip</span></a></li> <li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://sr.wikipedia.org/wiki/Regularni_izraz" title="Regularni izraz — sérvio" lang="sr" hreflang="sr" data-title="Regularni izraz" data-language-autonym="Српски / srpski" data-language-local-name="sérvio" class="interlanguage-link-target"><span>Српски / srpski</span></a></li> <li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://sv.wikipedia.org/wiki/Regulj%25C3%25A4ra_uttryck" title="Reguljära uttryck — sueco" lang="sv" hreflang="sv" data-title="Reguljära uttryck" data-language-autonym="Svenska" data-language-local-name="sueco" class="interlanguage-link-target"><span>Svenska</span></a></li> <li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ta.wikipedia.org/wiki/%25E0%25AE%259A%25E0%25AF%2581%25E0%25AE%25B0%25E0%25AF%2581%25E0%25AE%2599%25E0%25AF%258D%25E0%25AE%2595%25E0%25AF%2581%25E0%25AE%25B1%25E0%25AE%25BF%25E0%25AE%25A4%25E0%25AF%258D%25E0%25AE%25A4%25E0%25AF%258A%25E0%25AE%259F%25E0%25AE%25B0%25E0%25AF%258D" title="சுருங்குறித்தொடர் — tâmil" lang="ta" hreflang="ta" data-title="சுருங்குறித்தொடர்" data-language-autonym="தமிழ்" data-language-local-name="tâmil" class="interlanguage-link-target"><span>தமிழ்</span></a></li> <li class="interlanguage-link interwiki-th mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://th.wikipedia.org/wiki/%25E0%25B8%2599%25E0%25B8%25B4%25E0%25B8%259E%25E0%25B8%2588%25E0%25B8%2599%25E0%25B9%258C%25E0%25B8%259B%25E0%25B8%25A3%25E0%25B8%2581%25E0%25B8%2595%25E0%25B8%25B4" title="นิพจน์ปรกติ — tailandês" lang="th" hreflang="th" data-title="นิพจน์ปรกติ" data-language-autonym="ไทย" data-language-local-name="tailandês" class="interlanguage-link-target"><span>ไทย</span></a></li> <li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://tr.wikipedia.org/wiki/D%25C3%25BCzenli_ifade" title="Düzenli ifade — turco" lang="tr" hreflang="tr" data-title="Düzenli ifade" data-language-autonym="Türkçe" data-language-local-name="turco" class="interlanguage-link-target"><span>Türkçe</span></a></li> <li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://uk.wikipedia.org/wiki/%25D0%25A0%25D0%25B5%25D0%25B3%25D1%2583%25D0%25BB%25D1%258F%25D1%2580%25D0%25BD%25D0%25B8%25D0%25B9_%25D0%25B2%25D0%25B8%25D1%2580%25D0%25B0%25D0%25B7" title="Регулярний вираз — ucraniano" lang="uk" hreflang="uk" data-title="Регулярний вираз" data-language-autonym="Українська" data-language-local-name="ucraniano" class="interlanguage-link-target"><span>Українська</span></a></li> <li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://ur.wikipedia.org/wiki/%25D8%25B1%25DB%258C%25D8%25AC%25DB%258C%25DA%25A9%25D8%25B3" title="ریجیکس — urdu" lang="ur" hreflang="ur" data-title="ریجیکس" data-language-autonym="اردو" data-language-local-name="urdu" class="interlanguage-link-target"><span>اردو</span></a></li> <li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://vi.wikipedia.org/wiki/Bi%25E1%25BB%2583u_th%25E1%25BB%25A9c_ch%25C3%25ADnh_quy" title="Biểu thức chính quy — vietnamita" lang="vi" hreflang="vi" data-title="Biểu thức chính quy" data-language-autonym="Tiếng Việt" data-language-local-name="vietnamita" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li> <li class="interlanguage-link interwiki-wa mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://wa.wikipedia.org/wiki/Er%25C3%25AEl%25C3%25AAye_ratourneure" title="Erîlêye ratourneure — valão" lang="wa" hreflang="wa" data-title="Erîlêye ratourneure" data-language-autonym="Walon" data-language-local-name="valão" class="interlanguage-link-target"><span>Walon</span></a></li> <li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://wuu.wikipedia.org/wiki/%25E6%25AD%25A3%25E5%2588%2599%25E8%25A1%25A8%25E8%25BE%25BE%25E5%25BC%258F" title="正则表达式 — wu" lang="wuu" hreflang="wuu" data-title="正则表达式" data-language-autonym="吴语" data-language-local-name="wu" class="interlanguage-link-target"><span>吴语</span></a></li> <li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://zh.wikipedia.org/wiki/%25E6%25AD%25A3%25E5%2588%2599%25E8%25A1%25A8%25E8%25BE%25BE%25E5%25BC%258F" title="正则表达式 — chinês" lang="zh" hreflang="zh" data-title="正则表达式" data-language-autonym="中文" data-language-local-name="chinês" class="interlanguage-link-target"><span>中文</span></a></li> <li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://zh-yue.wikipedia.org/wiki/%25E6%25AD%25A3%25E5%2589%2587%25E8%25A1%25A8%25E9%2581%2594%25E5%25BC%258F" title="正則表達式 — cantonês" lang="yue" hreflang="yue" data-title="正則表達式" data-language-autonym="粵語" data-language-local-name="cantonês" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> </section> </div> <div class="minerva-footer-logo"> <img src="/static/images/mobile/copyright/wikipedia-wordmark-fr.svg" alt="Wikipédia" width="119" height="18" style="width: 7.4375em; height: 1.125em;"> </div> <ul id="footer-info" class="footer-info hlist hlist-separated"> <li id="footer-info-lastmod">Esta página foi editada pela última vez às 16h20min de 11 de maio de 2024.</li> <li id="footer-info-copyright">Conteúdo disponibilizado nos termos da <a class="external" rel="nofollow" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://creativecommons.org/licenses/by-sa/4.0/deed.pt">CC BY-SA 4.0</a>, salvo indicação em contrário.</li> </ul> <ul id="footer-places" class="footer-places hlist hlist-separated"> <li id="footer-places-privacy"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/pt-br">Política de privacidade</a></li> <li id="footer-places-about"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Sobre?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB">Sobre a Wikipédia</a></li> <li id="footer-places-disclaimers"><a href="https://pt-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Aviso_geral?_x_tr_sl=auto&amp;_x_tr_tl=en&amp;_x_tr_hl=en-GB">Avisos gerais</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Código de conduta</a></li> <li id="footer-places-developers"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://developer.wikimedia.org">Programadores</a></li> <li id="footer-places-statslink"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://stats.wikimedia.org/%23/pt.wikipedia.org">Estatísticas</a></li> <li id="footer-places-cookiestatement"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Declaração sobre ''cookies''</a></li> <li id="footer-places-terms-use"><a href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://foundation.m.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use/pt-br">Condições de utilização</a></li> <li id="footer-places-desktop-toggle"><a id="mw-mf-display-toggle" href="https://translate.google.com/website?sl=auto&amp;tl=en&amp;hl=en-GB&amp;u=https://pt.wikipedia.org/w/index.php?title%3DExpress%25C3%25A3o_regular%26mobileaction%3Dtoggle_view_desktop" data-event-name="switch_to_desktop">Versão desktop</a></li> </ul> </div> </footer> </div> </div> <div class="mw-notification-area" data-mw="interface"></div><!-- v:8.3.1 --> <script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-5ccf8d5c58-546bc","wgBackendResponseTime":190,"wgPageParseReport":{"limitreport":{"cputime":"0.356","walltime":"0.638","ppvisitednodes":{"value":2600,"limit":1000000},"postexpandincludesize":{"value":38266,"limit":2097152},"templateargumentsize":{"value":2139,"limit":2097152},"expansiondepth":{"value":18,"limit":100},"expensivefunctioncount":{"value":4,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":10680,"limit":5000000},"entityaccesscount":{"value":5,"limit":400},"timingprofile":["100.00% 380.593 1 -total"," 49.84% 189.700 1 Predefinição:Controle_de_autoridade"," 28.49% 108.413 1 Predefinição:Referências"," 26.34% 100.231 11 Predefinição:Citar_web"," 15.05% 57.290 7 Predefinição:Citar_livro"," 9.57% 36.405 7 Predefinição:ISBN"," 6.54% 24.898 7 Predefinição:Identificador_de_obras_de_referência"," 2.54% 9.660 21 Predefinição:Yesno-no"," 1.84% 7.019 28 Predefinição:Yesno"," 1.73% 6.585 1 Predefinição:Categorização_AD_e_AB_de_outras_wikis"]},"scribunto":{"limitreport-timeusage":{"value":"0.208","limit":"10.000"},"limitreport-memusage":{"value":7059178,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-559c9fd9f4-mb4xv","timestamp":"20241126135031","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Express\u00e3o regular","url":"https:\/\/pt.wikipedia.org\/wiki\/Express%C3%A3o_regular","sameAs":"http:\/\/www.wikidata.org\/entity\/Q185612","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q185612","author":{"@type":"Organization","name":"Contribuidores dos projetos da Wikimedia"},"publisher":{"@type":"Organization","name":"Funda\u00e7\u00e3o Wikimedia, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2001-12-29T22:50:29Z","dateModified":"2024-05-11T16:20:41Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/c\/c6\/Regular_expression_example.png"}</script> <script>(window.NORLQ=window.NORLQ||[]).push(function(){var ns,i,p,img;ns=document.getElementsByTagName('noscript');for(i=0;i<ns.length;i++){p=ns[i].nextSibling;if(p&&p.className&&p.className.indexOf('lazy-image-placeholder')>-1){img=document.createElement('img');img.setAttribute('src',p.getAttribute('data-src'));img.setAttribute('width',p.getAttribute('data-width'));img.setAttribute('height',p.getAttribute('data-height'));img.setAttribute('alt',p.getAttribute('data-alt'));p.parentNode.replaceChild(img,p);}}});</script> <script>function gtElInit() {var lib = new google.translate.TranslateService();lib.translatePage('pt-PT', 'en', function () {});}</script> <script src="https://translate.google.com/translate_a/element.js?cb=gtElInit&amp;hl=en-GB&amp;client=wt" type="text/javascript"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10