CINXE.COM
Expression régulière — Wikipédia
<!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="fr" dir="ltr"> <head> <base href="https://fr.m.wikipedia.org/wiki/Expressions_r%C3%A9guli%C3%A8res"> <meta charset="UTF-8"> <title>Expression régulière — Wikipédia</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(/(?:^|; )frwikimwclientpreferences=([^;]+)/);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":["","janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"wgRequestId":"dac7758b-5a69-4399-bda1-264cbc9bd27d","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Expression_régulière","wgTitle":"Expression régulière","wgCurRevisionId":214648242,"wgRevisionId":214648242, "wgArticleId":1063,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgPageViewLanguage":"fr","wgPageContentLanguage":"fr","wgPageContentModel":"wikitext","wgRelevantPageName":"Expression_régulière","wgRelevantArticleId":1063,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgRedirectedFrom":"Expressions_régulières","wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"fr","pageLanguageDir":"ltr","pageVariantFallbacks":"fr"},"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":60000,"wgInternalRedirectTargetUrl":"/wiki/Expression_r%C3%A9guli%C3%A8re","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":false,"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]};RLSTATE={"ext.gadget.Mobile":"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","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"};RLPAGEMODULES=["mediawiki.action.view.redirect","ext.cite.ux-enhancements","mediawiki.page.media","site","mediawiki.page.ready","skins.minerva.scripts","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ArchiveLinks","ext.gadget.Wdsearch","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","wikibase.sidebar.tracking"];</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=fr&modules=ext.cite.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&only=styles&skin=minerva"> <script async src="/w/load.php?lang=fr&modules=startup&only=scripts&raw=1&skin=minerva"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=fr&modules=ext.gadget.Mobile&only=styles&skin=minerva"> <link rel="stylesheet" href="/w/load.php?lang=fr&modules=site.styles&only=styles&skin=minerva"> <meta name="generator" content="MediaWiki 1.44.0-wmf.5"> <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/1/1c/Kleene.jpg"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1708"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/1/1c/Kleene.jpg"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="1139"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="911"> <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="Expression régulière — Wikipédia"> <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="Modifier" href="/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&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 (fr)"> <link rel="EditURI" type="application/rsd+xml" href="//fr.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://fr.wikipedia.org/wiki/Expression_r%C3%A9guli%C3%A8re"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr"> <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.omlEigW4xY8.O/am=DgY/d=1/rs=AN8SPfpjsL9kUWY0h-sp7Ilu7hZWGwEmeg/m=corsproxy" data-sourceurl="https://fr.m.wikipedia.org/wiki/Expressions_r%C3%A9guli%C3%A8res"></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.omlEigW4xY8.O/am=DgY/d=1/exm=corsproxy/ed=1/rs=AN8SPfpjsL9kUWY0h-sp7Ilu7hZWGwEmeg/m=phishing_protection" data-phishing-protection-enabled="false" data-forms-warning-enabled="true" data-source-url="https://fr.m.wikipedia.org/wiki/Expressions_r%C3%A9guli%C3%A8res"></script> <meta name="robots" content="none"> </head> <body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Expression_régulière rootpage-Expression_régulière 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.omlEigW4xY8.O/am=DgY/d=1/exm=corsproxy,phishing_protection/ed=1/rs=AN8SPfpjsL9kUWY0h-sp7Ilu7hZWGwEmeg/m=navigationui" data-environment="prod" data-proxy-url="https://fr-m-wikipedia-org.translate.goog" data-proxy-full-url="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" data-source-url="https://fr.m.wikipedia.org/wiki/Expressions_r%C3%A9guli%C3%A8res" data-source-language="auto" data-target-language="en" data-display-language="en-GB" data-detected-source-language="fr" data-is-source-untranslated="false" data-source-untranslated-url="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://fr.m.wikipedia.org/wiki/Expressions_r%25C3%25A9guli%25C3%25A8res&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://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_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://fr-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Accueil_principal?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" data-mw="interface"> <span class="minerva-icon minerva-icon--home"></span> <span class="toggle-list-item__label">Accueil</span> </a></li> <li class="toggle-list-item "><a class="toggle-list-item__anchor menu__item--random" href="https://fr-m-wikipedia-org.translate.goog/wiki/Sp%C3%A9cial:Page_au_hasard?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" data-mw="interface"> <span class="minerva-icon minerva-icon--die"></span> <span class="toggle-list-item__label">Au hasard</span> </a></li> <li class="toggle-list-item skin-minerva-list-item-jsonly"><a class="toggle-list-item__anchor menu__item--nearby" href="https://fr-m-wikipedia-org.translate.goog/wiki/Sp%C3%A9cial:Nearby?_x_tr_sl=auto&_x_tr_tl=en&_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">À proximité</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://fr-m-wikipedia-org.translate.goog/w/index.php?title=Sp%C3%A9cial:Connexion&returnto=Expression+r%C3%A9guli%C3%A8re&_x_tr_sl=auto&_x_tr_tl=en&_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">Se connecter</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://fr-m-wikipedia-org.translate.goog/w/index.php?title=Sp%C3%A9cial:MobileOptions&returnto=Expression+r%C3%A9guli%C3%A8re&_x_tr_sl=auto&_x_tr_tl=en&_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">Configuration</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&tl=en&hl=en-GB&u=https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source%3Ddonate%26utm_medium%3Dsidebar%26utm_campaign%3DC13_fr.wikipedia.org%26uselang%3Dfr%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">Faire un don</span> </a></li> </ul> <ul class="hlist"> <li class="toggle-list-item "><a class="toggle-list-item__anchor menu__item--about" href="https://fr-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:%C3%80_propos_de_Wikip%C3%A9dia?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" data-mw="interface"> <span class="toggle-list-item__label">À propos de Wikipédia</span> </a></li> <li class="toggle-list-item "><a class="toggle-list-item__anchor menu__item--disclaimers" href="https://fr-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Avertissements_g%C3%A9n%C3%A9raux?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" data-mw="interface"> <span class="toggle-list-item__label">Avertissements</span> </a></li> </ul> </div><label class="main-menu-mask" for="main-menu-input"></label> </nav> <div class="branding-box"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Accueil_principal?_x_tr_sl=auto&_x_tr_tl=en&_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="Spécial:Recherche"> <input class="search skin-minerva-search-trigger" id="searchInput" type="search" name="search" placeholder="Rechercher sur Wikipédia" aria-label="Rechercher sur Wikipédia" autocapitalize="sentences" title="Rechercher sur 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>Rechercher</span> </button> </form> <nav class="minerva-user-navigation" aria-label="Navigation utilisateur"> </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">Expression régulière</span></h1> <div class="tagline"> séquence de caractères formant un motif de recherche </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://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#p-lang" data-mw="interface" data-event-name="menu.languages" title="Langue" 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>Langue</span> </a></li> <li id="page-actions-watch" class="page-actions-menu__list-item"><a role="button" id="ca-watch" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Sp%C3%A9cial:Connexion&returnto=Expression+r%C3%A9guli%C3%A8re&_x_tr_sl=auto&_x_tr_tl=en&_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>Suivre</span> </a></li> <li id="page-actions-edit" class="page-actions-menu__list-item"><a role="button" id="ca-edit" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&_x_tr_sl=auto&_x_tr_tl=en&_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>Modifier</span> </a></li> </ul> </nav><!-- version 1.0.2 (change every time you update a partial) --> <div id="mw-content-subtitle"> <span class="mw-redirectedfrom">(Redirigé depuis <a href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expressions_r%C3%A9guli%C3%A8res&redirect=no&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Expressions régulières">Expressions régulières</a>)</span> </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="fr" dir="ltr"> <section class="mf-section-0" id="mf-section-0"> <div class="bandeau-container metadata homonymie hatnote"> <div class="bandeau-cell bandeau-icone" style="display:table-cell;padding-right:0.5em"> <span class="noviewer" typeof="mw:File"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Aide:Homonymie?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Aide:Homonymie"><img alt="Page d’aide sur l’homonymie" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/20px-Logo_disambig.svg.png" decoding="async" width="20" height="15" class="mw-file-element" srcset="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/30px-Logo_disambig.svg.png 1.5x,https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/40px-Logo_disambig.svg.png 2x" data-file-width="512" data-file-height="375"></a></span> </div> <div class="bandeau-cell" style="display:table-cell;padding-right:0.5em"> <p>Pour les articles homonymes, voir <a href="https://fr-m-wikipedia-org.translate.goog/wiki/R%C3%A9gulier?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-disambig" title="Régulier">régulier</a> et <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Rationnel?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-disambig" title="Rationnel">rationnel</a>.</p> </div> </div> <p>En <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Informatique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Informatique">informatique</a>, une <b>expression régulière</b> ou <b>expression rationnelle</b><sup id="cite_ref-1" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-1"><span class="cite_crochet">[</span>1<span class="cite_crochet">]</span></a></sup> ou <b>expression normale</b><sup id="cite_ref-2" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-2"><span class="cite_crochet">[</span>note 1<span class="cite_crochet">]</span></a></sup> ou <b>motif</b> est une <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Cha%C3%AEne_de_caract%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Chaîne de caractères">chaîne de caractères</a> qui décrit, selon une syntaxe précise, un <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Ensemble?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Ensemble">ensemble</a> de chaînes de caractères possibles. Les expressions régulières sont également appelées <i><b>regex</b></i> (un <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Mot-valise?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Mot-valise">mot-valise</a> formé depuis l'anglais <i><span class="lang-en" lang="en">regular expression</span></i>). Les expressions rationnelles sont issues des théories mathématiques des <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Langage_formel?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Langage formel">langages formels</a> des années 1940. Leur capacité à décrire avec concision des <i>ensembles réguliers</i> explique qu’elles se retrouvent dans plusieurs domaines scientifiques dans les années d’<a href="https://fr-m-wikipedia-org.translate.goog/wiki/Apr%C3%A8s-guerre?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Après-guerre">après-guerre</a> et justifie leur adoption en <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Informatique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Informatique">informatique</a>. Les expressions régulières sont aujourd’hui utilisées pour programmer des logiciels avec des fonctionnalités de lecture, de contrôle, de modification, et d'analyse de textes ainsi que dans la manipulation des langues formelles que sont les <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Langage_informatique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Langage informatique">langages informatiques</a>.</p> <figure class="mw-default-size" typeof="mw:File/Thumb"> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Fichier:Kleene.jpg?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Kleene.jpg/220px-Kleene.jpg" decoding="async" width="220" height="313" class="mw-file-element" srcset="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Kleene.jpg/330px-Kleene.jpg 1.5x,https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Kleene.jpg/440px-Kleene.jpg 2x" data-file-width="562" data-file-height="800"></a> <figcaption> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Stephen_Cole_Kleene?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Stephen Cole Kleene">Stephen Cole Kleene</a>, dont les travaux ont fondé le concept d'expression régulière. </figcaption> </figure> <p>Les expressions <i>régulières</i> ont la qualité de pouvoir être décrites par des formules ou motifs (en anglais <i><span class="lang-en" lang="en">patterns</span></i>) bien plus simples que les autres moyens<sup id="cite_ref-3" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-3"><span class="cite_crochet">[</span>2<span class="cite_crochet">]</span></a></sup>.</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="fr" dir="ltr"> <h2 id="mw-toc-heading">Sommaire</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span> </div> <ul> <li class="toclevel-1 tocsection-1"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Histoire"><span class="tocnumber">1</span> <span class="toctext">Histoire</span></a></li> <li class="toclevel-1 tocsection-2"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Utilisation"><span class="tocnumber">2</span> <span class="toctext">Utilisation</span></a></li> <li class="toclevel-1 tocsection-3"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Principes"><span class="tocnumber">3</span> <span class="toctext">Principes</span></a> <ul> <li class="toclevel-2 tocsection-4"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Op%C3%A9rateurs"><span class="tocnumber">3.1</span> <span class="toctext">Opérateurs</span></a></li> </ul></li> <li class="toclevel-1 tocsection-5"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Standards"><span class="tocnumber">4</span> <span class="toctext">Standards</span></a></li> <li class="toclevel-1 tocsection-6"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Classe_de_caract%C3%A8res"><span class="tocnumber">5</span> <span class="toctext">Classe de caractères</span></a> <ul> <li class="toclevel-2 tocsection-7"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Standardisation_et_application"><span class="tocnumber">5.1</span> <span class="toctext">Standardisation et application</span></a></li> <li class="toclevel-2 tocsection-8"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Classe_d'%C3%A9quivalence"><span class="tocnumber">5.2</span> <span class="toctext">Classe d'équivalence</span></a></li> </ul></li> <li class="toclevel-1 tocsection-9"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Fonctions_avanc%C3%A9es"><span class="tocnumber">6</span> <span class="toctext">Fonctions avancées</span></a></li> <li class="toclevel-1 tocsection-10"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Notations_:_impl%C3%A9mentations_et_standardisation"><span class="tocnumber">7</span> <span class="toctext">Notations : implémentations et standardisation</span></a> <ul> <li class="toclevel-2 tocsection-11"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Standard_POSIX"><span class="tocnumber">7.1</span> <span class="toctext">Standard POSIX</span></a> <ul> <li class="toclevel-3 tocsection-12"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Expressions_r%C3%A9guli%C3%A8res_basiques"><span class="tocnumber">7.1.1</span> <span class="toctext">Expressions régulières basiques</span></a></li> <li class="toclevel-3 tocsection-13"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Expressions_r%C3%A9guli%C3%A8res_%C3%A9tendues"><span class="tocnumber">7.1.2</span> <span class="toctext">Expressions régulières étendues</span></a></li> <li class="toclevel-3 tocsection-14"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#S%C3%A9quences_d%E2%80%99%C3%A9chappement"><span class="tocnumber">7.1.3</span> <span class="toctext">Séquences d’échappement</span></a></li> </ul></li> <li class="toclevel-2 tocsection-15"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Notation_%C3%A9tendue_dans_vim_et_emacs"><span class="tocnumber">7.2</span> <span class="toctext">Notation étendue dans vim et emacs</span></a></li> <li class="toclevel-2 tocsection-16"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Python"><span class="tocnumber">7.3</span> <span class="toctext">Python</span></a></li> <li class="toclevel-2 tocsection-17"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Biblioth%C3%A8que_BSD"><span class="tocnumber">7.4</span> <span class="toctext">Bibliothèque BSD</span></a></li> <li class="toclevel-2 tocsection-18"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Tcl"><span class="tocnumber">7.5</span> <span class="toctext">Tcl</span></a></li> <li class="toclevel-2 tocsection-19"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Perl"><span class="tocnumber">7.6</span> <span class="toctext">Perl</span></a></li> <li class="toclevel-2 tocsection-20"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#PHP"><span class="tocnumber">7.7</span> <span class="toctext">PHP</span></a></li> <li class="toclevel-2 tocsection-21"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#ICU"><span class="tocnumber">7.8</span> <span class="toctext">ICU</span></a></li> </ul></li> <li class="toclevel-1 tocsection-22"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Expressions_r%C3%A9guli%C3%A8res_et_Unicode"><span class="tocnumber">8</span> <span class="toctext">Expressions régulières et Unicode</span></a></li> <li class="toclevel-1 tocsection-23"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Impl%C3%A9mentations_et_complexit%C3%A9_algorithmique"><span class="tocnumber">9</span> <span class="toctext">Implémentations et complexité algorithmique</span></a></li> <li class="toclevel-1 tocsection-24"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Notes_et_r%C3%A9f%C3%A9rences"><span class="tocnumber">10</span> <span class="toctext">Notes et références</span></a> <ul> <li class="toclevel-2 tocsection-25"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Notes"><span class="tocnumber">10.1</span> <span class="toctext">Notes</span></a></li> <li class="toclevel-2 tocsection-26"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#R%C3%A9f%C3%A9rences"><span class="tocnumber">10.2</span> <span class="toctext">Références</span></a></li> </ul></li> <li class="toclevel-1 tocsection-27"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Voir_aussi"><span class="tocnumber">11</span> <span class="toctext">Voir aussi</span></a> <ul> <li class="toclevel-2 tocsection-28"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Articles_connexes"><span class="tocnumber">11.1</span> <span class="toctext">Articles connexes</span></a></li> <li class="toclevel-2 tocsection-29"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Bibliographie"><span class="tocnumber">11.2</span> <span class="toctext">Bibliographie</span></a></li> <li class="toclevel-2 tocsection-30"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Liens_externes"><span class="tocnumber">11.3</span> <span class="toctext">Liens externes</span></a></li> </ul></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="Histoire">Histoire</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=1&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Histoire" 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>modifier</span> </a> </span> </div> <section class="mf-section-1 collapsible-block" id="mf-section-1"> <p>Dans les <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Ann%C3%A9es_1940?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Années 1940">années 1940</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Warren_McCulloch?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Warren McCulloch">Warren McCulloch</a> et <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Walter_Pitts?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Walter Pitts">Walter Pitts</a> ont décrit le système nerveux en modélisant les neurones par des <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Machine_%C3%A0_%C3%A9tats_finis?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Machine à états finis">automates</a> simples. En 1956, le logicien <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Stephen_Cole_Kleene?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Stephen Cole Kleene">Stephen Cole Kleene</a><sup id="cite_ref-4" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-4"><span class="cite_crochet">[</span>3<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-5" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-5"><span class="cite_crochet">[</span>note 2<span class="cite_crochet">]</span></a></sup> a ensuite décrit ces modèles en termes d’<i>ensembles réguliers</i> et d’automates. Il est considéré comme l'inventeur des expressions régulières<sup id="cite_ref-AHU_6-0" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-AHU-6"><span class="cite_crochet">[</span>4<span class="cite_crochet">]</span></a></sup>. En 1959, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Michael_O._Rabin?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Michael O. Rabin">Michael O. Rabin</a> et <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Dana_S._Scott?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Dana S. Scott">Dana Scott</a> proposent le premier traitement mathématique et rigoureux de ces concepts<sup id="cite_ref-7" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-7"><span class="cite_crochet">[</span>5<span class="cite_crochet">]</span></a></sup>, ce qui leur vaudra le <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Prix_Turing?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Prix Turing">prix Turing</a> en 1976.</p> <p>Dans ce contexte, les expressions régulières correspondent aux <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Grammaire_r%C3%A9guli%C3%A8re?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Grammaire régulière">grammaires de type 3</a> (voir <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Grammaire_formelle?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Grammaire formelle">grammaire formelle</a>) de la <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Hi%C3%A9rarchie_de_Chomsky?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Hiérarchie de Chomsky">hiérarchie de Chomsky</a> ; elles peuvent donc être utilisées pour décrire la <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Morphologie_(linguistique)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Morphologie (linguistique)">morphologie d’une langue</a>.</p> <p><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Ken_Thompson?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Ken Thompson">Ken Thompson</a> a mis en œuvre la notation de Kleene dans l’éditeur <a href="https://fr-m-wikipedia-org.translate.goog/wiki/QED_(logiciel)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="QED (logiciel)">qed</a>, puis l’éditeur <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Ed_(logiciel)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Ed (logiciel)">ed</a> sous Unix, et finalement dans <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Grep?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Grep">grep</a>. Depuis lors, les expressions régulières ont été largement utilisées dans les utilitaires tels que <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Lex_et_yacc?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Lex et yacc">lex</a> ainsi que dans les langages de programmation nés sous Unix, tels que <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expr?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Expr">expr</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Awk?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Awk">awk</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Perl_(langage)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Perl (langage)">Perl</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Tool_Command_Language?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Tool Command Language">Tcl</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Langage_de_programmation_Python?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Langage de programmation Python">Python</a>, etc.</p> <p>En sortant du cadre théorique, les expressions régulières ont acquis des fonctionnalités permettant de décrire des langages non rationnels. Un glissement sémantique s'est ainsi produit : la notion d'expression régulière n'a pas le même sens dans le contexte de l'informatique appliquée et dans la théorie des langages formels.</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="Utilisation">Utilisation</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=2&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Utilisation" 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>modifier</span> </a> </span> </div> <section class="mf-section-2 collapsible-block" id="mf-section-2"> <table class="wikitable droite"> <caption> Exemples d'expressions régulières </caption> <tbody> <tr> <th>Expression régulière</th> <th>Mots décrits</th> <th>Mots non décrits</th> </tr> <tr style="text-align:center;"> <td>détecté</td> <td>« détecté »</td> <td>« détect », « détecta »,<br> « détectés », « »</td> </tr> <tr style="text-align:center;"> <td>ex (a?e|æ|é)quo</td> <td>« ex équo », « ex equo »,<br> « ex aequo » et « ex æquo »</td> <td>« ex quo », « ex aiquo »,<br> « ex aeko », « ex æéquo »</td> </tr> <tr style="text-align:center;"> <td>^Section .+</td> <td>« Section 1 », « Section 22 »,<br> « Section A », …</td> <td>« voir Section 1 »,<br> « Sectionner »</td> </tr> <tr style="text-align:center;"> <td>6,66*$</td> <td>« 6,6 », « 6,666 »,<br> « 6,6666 », …</td> <td>« 6,66667 »,</td> </tr> <tr style="text-align:center;"> <td>[1234567890]+(,[1234567890]+)?</td> <td>« 2 », « 42 », « 0,618 »,<br> « 49,3 », …</td> <td>« 3, », « ,75 » , « »</td> </tr> </tbody> </table> <p>Initialement créées pour décrire des langages formels, les expressions régulières sont utilisées dans l’analyse et la manipulation des <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Langage_informatique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Langage informatique">langages informatiques</a> ; <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Compilateur?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Compilateur">compilateurs</a> et <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Interpr%C3%A8te_(informatique)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Interprète (informatique)">interprètes</a> sont ainsi basés sur celles-ci.</p> <p>Utilisée à la manière des outils de recherche de texte dans un document, une expression régulière décrit des chaînes de caractères ayant des propriétés communes, dans le but de les trouver dans un bloc de texte pour leur appliquer un traitement automatisé, comme un ajout, leur remplacement, leur modification ou leur suppression.</p> <p>Beaucoup d'<a href="https://fr-m-wikipedia-org.translate.goog/wiki/%C3%89diteur_de_texte?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Éditeur de texte">éditeurs de texte</a> et la plupart des <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Environnement_de_d%C3%A9veloppement?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Environnement de développement">environnements de développement intégrés</a> permettent de mettre en œuvre les expressions régulières. Un grand nombre d’utilitaires <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Unix?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Unix">Unix</a> savent les utiliser nativement. Les plus connus sont <a href="https://fr-m-wikipedia-org.translate.goog/wiki/GNU_grep?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="GNU grep">GNU grep</a> ou <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Sed_(logiciel)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Sed (logiciel)">GNU sed</a> qui, à la manière des éditeurs de texte, utilisent ces expressions pour parcourir de façon automatique un document à la recherche de morceaux de texte compatibles avec le motif de recherche, et éventuellement effectuer un ajout, une substitution ou une suppression.</p> <p>Les <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Interface_en_ligne_de_commande?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Interface en ligne de commande">interfaces en ligne de commande</a> (ou <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Shell_(informatique)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Shell (informatique)">shells</a>) utilisent un système apparenté mais distinct et moins expressif appelé <a href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Glob_(programming)&action=edit&redlink=1&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="new" title="Glob (programming) (page inexistante)">glob</a> <a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://en.wikipedia.org/wiki/glob_(programming)" class="extiw" title="en:glob (programming)"><span class="indicateur-langue" title="Article en anglais : « glob (programming) »">(en)</span></a> ou globbing.</p> <p>Les expressions régulières sont fréquemment employées dans les activités d'<a href="https://fr-m-wikipedia-org.translate.goog/wiki/Administration_syst%C3%A8me?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Administration système">administration système</a>, de <a href="https://fr-m-wikipedia-org.translate.goog/wiki/D%C3%A9veloppement_logiciel?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Développement logiciel">développement logiciel</a> et de <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Traitement_automatique_du_langage_naturel?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Traitement automatique du langage naturel">traitement automatique du langage naturel</a>. Elles ont vu un nouveau champ d’application avec le développement d’<a href="https://fr-m-wikipedia-org.translate.goog/wiki/Internet?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Internet">Internet</a>, et la diffusion de code malveillant ou de messages <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Pourriel?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Pourriel">pourriels</a>. Des <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Filtre_(informatique)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Filtre (informatique)">filtres</a> et des <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Bot_informatique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Bot informatique">robots</a> utilisant ces expressions sont utilisés pour détecter les éléments potentiellement nuisibles.</p> <p>En théorie des <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Langage_formel?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Langage formel">langages formels</a>, une expression régulière est une expression représentant un <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Langage_rationnel?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Langage rationnel">langage rationnel</a>. Dans ce contexte, les expressions régulières ont un pouvoir expressif plus limité : cette notion a un sens plus large en informatique appliquée qu'en théorie des langages formels.</p> <div class="bandeau-container bandeau-section metadata bandeau-niveau-information"> <div class="bandeau-cell bandeau-icone-css loupe"> Article détaillé : <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Langage_rationnel?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Langage rationnel">langage rationnel</a>. </div> </div> </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="Principes">Principes</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=3&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Principes" 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>modifier</span> </a> </span> </div> <section class="mf-section-3 collapsible-block" id="mf-section-3"> <p>Une expression régulière est une suite de <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Caract%C3%A8re_(typographie)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Caractère (typographie)">caractères</a> typographiques (qu’on appelle plus simplement « motif » – « <span class="lang-en" lang="en"><i>pattern</i></span> » en anglais) décrivant un ensemble de <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Cha%C3%AEne_de_caract%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Chaîne de caractères">chaînes de caractères</a>. Par exemple l’ensemble de mots « ex équo, ex equo, ex aequo et ex æquo » peut être condensé en un seul motif « ex (a?e|æ|é)quo ». Les mécanismes de base pour former de telles expressions sont basés sur des caractères spéciaux de substitution, de groupement et de quantification.</p> <p>Une <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Barre_verticale?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Barre verticale">barre verticale</a> sépare le plus souvent deux expressions alternatives : « equo|aequo » désigne soit equo, soit aequo. Il est également possible d’utiliser des parenthèses pour définir le champ et la priorité de la détection, « (ae|e)quo » désignant le même ensemble que « aequo|equo » et de quantifier les groupements présents dans le motif en apposant des caractères de quantification à droite de ces groupements.</p> <p>Les quantificateurs les plus répandus sont :</p> <ul> <li><code>?</code> qui définit un groupe qui existe <b>zéro ou une fois</b> : <code>toto?</code> correspondant alors à « tot » ou « toto » mais pas « totoo » ;</li> <li><code>*</code> qui définit un groupe qui existe <b>zéro, une ou plusieurs fois</b> (l'<a href="https://fr-m-wikipedia-org.translate.goog/wiki/%C3%89toile_de_Kleene?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Étoile de Kleene">étoile de Kleene</a>) : <code>toto*</code> correspondant à « tot », « toto », « totoo », « totooo », <abbr class="abbr" title="et cetera">etc.</abbr> ;</li> <li><code>+</code> qui définit un groupe qui existe <b>une ou plusieurs fois</b> : <code>toto+</code> correspondant à « toto », « totoo », « totooo », <abbr class="abbr" title="et cetera">etc.</abbr> mais pas « tot ».</li> </ul> <p>Les symboles dotés d'une sémantique particulière peuvent être appelés « opérateurs », « métacaractères » ou « caractères spéciaux ». Les caractères qui ne représentent qu'eux-mêmes sont dits « littéraux ».</p> <p>Les expressions régulières peuvent être combinées, par exemple par <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Concat%C3%A9nation?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Concaténation">concaténation</a>, pour produire des expressions régulières plus complexes.</p> <p>Lorsqu'une chaîne de caractères correspond à la description donnée par l'expression régulière, on dit qu'il y a « correspondance » entre la chaîne et le motif, ou que le motif « reconnaît » la chaîne. Cette correspondance peut concerner la totalité ou une partie de la chaîne de caractères. Par exemple, dans la phrase « Les deux équipes ont terminé ex æquo et se sont saluées. », la sous-chaîne « ex æquo » est reconnue par le motif « ex (a?e|æ|é)quo ».</p> <p>Par défaut, les expressions régulières sont <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Sensibilit%C3%A9_%C3%A0_la_casse?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Sensibilité à la casse">sensibles à la casse</a>. Lorsque c'est possible, elles tentent de reconnaître la plus grande sous-chaîne correspondant au motif : on dit qu'elles sont « gourmandes ». Par exemple, <code>Aa+</code> reconnaît la totalité de la chaîne « Aaaaaaa » plutôt qu'une partie « Aaa » (gourmandise), mais elle ne reconnaît pas la chaîne « aaaA » (sensibilité à la casse).</p> <div class="mw-heading mw-heading3"> <h3 id="Opérateurs"><span id="Op.C3.A9rateurs"></span>Opérateurs</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=4&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Opérateurs" 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>modifier</span> </a> </span> </div> <table class="wikitable"> <tbody> <tr> <th rowspan="2">Opérateurs</th> <th rowspan="2">Description</th> <th colspan="3">Exemples</th> </tr> <tr> <th>Expression régulière</th> <th>Chaînes décrites</th> <th>Chaînes non décrites</th> </tr> <tr> <td><i>expr<sub>1</sub> expr<sub>2</sub></i></td> <td>Opérateur de concaténation de deux expressions (implicite).</td> <td>ab</td> <td>« ab »</td> <td>« a », « b », chaîne vide</td> </tr> <tr> <td>.</td> <td>Un caractère et un seul</td> <td>.</td> <td>« a », « b », etc.</td> <td>chaîne vide, « ab »</td> </tr> <tr> <td><i>expr</i>?</td> <td>Ce quantificateur correspond à ce qui le précède, présent <b>zéro ou une fois</b>. Si de multiples correspondances existent dans un texte, il trouve d’abord ceux placés en tête du texte et retourne alors la plus grande longueur possible à partir de cette position initiale.</td> <td>a?</td> <td>chaîne vide, « a »</td> <td>« aa », « b »</td> </tr> <tr> <td><i>expr</i>+</td> <td>Ce quantificateur correspond à ce qui le précède, répété <b>une ou plusieurs fois</b>. Si de multiples correspondances existent dans un texte, il trouve d’abord ceux placés en tête du texte et retourne alors la plus grande longueur possible à partir de cette position initiale.</td> <td>a+</td> <td>« a », « aa », « aaaaa », etc.</td> <td>chaîne vide, « b », « aaab »</td> </tr> <tr> <td><i>expr</i>*</td> <td>Ce quantificateur correspond à ce qui le précède, répété <b>zéro ou plusieurs fois</b>. Si de multiples correspondances existent dans un texte, il trouve d’abord ceux placés en tête du texte et retourne alors la plus grande longueur possible à partir de cette position initiale.</td> <td>a*</td> <td>chaîne vide, « a », « aaa », etc.</td> <td>« b », « aaab »</td> </tr> <tr> <td><i>expr<sub>1</sub></i>|<i>expr<sub>2</sub></i></td> <td>C’est l’opérateur de choix entre plusieurs alternatives, c’est-à-dire l’union ensembliste. Il peut être combiné autant de fois que nécessaire pour chacune des alternatives possibles. Il fait correspondre <b>l’une des expressions placées avant ou après l’opérateur</b>. Ces expressions peuvent éventuellement être vides, et donc (x|) équivaut à x?.</td> <td>a|b</td> <td>« a », « b »</td> <td>chaîne vide, « ab », « c »</td> </tr> <tr> <td>[<i>liste</i>]</td> <td>Un des caractères entre crochets (« classe de caractères »)</td> <td>[aeiou]</td> <td>« a », « e », « i », etc.</td> <td>chaîne vide, « b », « ae »</td> </tr> <tr> <td>[^<i>liste</i>]</td> <td>Un caractère n’étant pas entre crochets (« classe de caractères »)</td> <td>[^aeiou]</td> <td>« b », etc.</td> <td>chaîne vide, « a », « bc »</td> </tr> <tr> <td>(<i>expr</i>)</td> <td>Groupement de l’expression entre parenthèses</td> <td>(détecté)</td> <td>« détecté », « détectés »</td> <td>« détect », « détecta »</td> </tr> <tr> <td><i>expr</i>{<i>n</i>}</td> <td>Exactement <i>n</i> occurrences de l’expression précédant les accolades</td> <td>a{3}</td> <td>« aaa »</td> <td>« aa », « aaaa »</td> </tr> <tr> <td><i>expr</i>{<i>n</i>,<i>m</i>}</td> <td>Entre <i>n</i> et <i>m</i> occurrences de l’expression précédant les accolades</td> <td>a{2,4}</td> <td>« aa », « aaa », « aaaa »</td> <td>« a », « aaaaa »</td> </tr> <tr> <td><i>expr</i>{<i>n</i>,}</td> <td>Au moins <i>n</i> occurrences de l’expression précédant les accolades</td> <td>a{3,}</td> <td>« aaa », « aaaa », « aaaaa », etc.</td> <td>« aa »</td> </tr> <tr> <td>^</td> <td>Ce prédicat ne correspond à aucun caractère mais fixe une condition nécessaire permettant de trouver un accord sur ce qui le suit en indiquant que ce doit être au <b>début d’une ligne</b> (donc être au début du texte d’entrée ou après un saut de ligne). Il ne peut être considéré ainsi qu’au début de l’expression régulière, ailleurs il est considéré littéralement. Il s’applique comme condition à la totalité du reste de l’expression régulière (et concerne donc toutes les alternatives représentées).</td> <td colspan="3" style="text-align:center">^a trouve « a » en début de ligne mais pas dans « ba ».</td> </tr> <tr> <td>$</td> <td>Ce prédicat ne correspond à aucun caractère mais fixe une condition nécessaire permettant de trouver un accord sur ce qui le précède en indiquant que ce doit être à <b>la fin d’une ligne</b> (donc être à la fin du texte d’entrée ou juste avant un saut de ligne). Il ne peut être considéré ainsi qu’à la fin de l’expression régulière, ailleurs il est considéré littéralement. Il s’applique comme condition à la totalité du reste de l’expression régulière (et concerne donc toutes les alternatives représentées).</td> <td colspan="3" style="text-align:center">a$ trouve « a » en fin de ligne mais pas dans « ab ».</td> </tr> </tbody> </table> </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="Standards">Standards</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=5&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Standards" 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>modifier</span> </a> </span> </div> <section class="mf-section-4 collapsible-block" id="mf-section-4"> <p>Dans le domaine de l'informatique, un outil permettant de manipuler les expressions régulières est appelé un <i>moteur d'expressions régulières</i> ou <i>moteur d'expressions rationnelles</i>. Il existe des standards permettant d'assurer une cohérence dans l'utilisation de ces outils.</p> <p>Le standard <a href="https://fr-m-wikipedia-org.translate.goog/wiki/POSIX?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="POSIX">POSIX</a> propose trois jeux de normes :</p> <ul> <li>BRE (Basic Regular Expressions) pour les expressions régulières basiques. C'est par exemple le standard par défaut pour <i>sed</i> et <i>grep</i></li> <li>ERE (Extended Regular Expressions) pour les expressions régulières étendues.</li> <li>SRE (Simple Regular Expressions) qui est devenu obsolète.</li> </ul> <p>Les expressions régulières de <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Perl_(langage)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Perl (langage)">perl</a> sont également un standard de fait, en raison de leur richesse expressive et de leur puissance. Tout en suivant leur propre évolution, elles sont par exemple à l'origine de la <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Biblioth%C3%A8que_logicielle?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Bibliothèque logicielle">bibliothèque</a> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/PCRE?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="PCRE">PCRE</a>. <a href="https://fr-m-wikipedia-org.translate.goog/wiki/ECMAScript?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="ECMAScript">ECMAScript</a> propose également dans le document Standard ECMA-262 une norme employée par exemple par <a href="https://fr-m-wikipedia-org.translate.goog/wiki/JavaScript?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="JavaScript">JavaScript</a>.</p> <p>Les notations ou leurs sémantiques peuvent varier légèrement d'un moteur d'expression régulière à l'autre. Ils peuvent ne respecter que partiellement ces normes, ou de manière incomplète, ou proposer leurs propres fonctionnalités, comme <a href="https://fr-m-wikipedia-org.translate.goog/wiki/GNU?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="GNU">GNU</a> ou le <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Framework_.NET?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Framework .NET">Framework .NET</a>. Les spécificités de chacun sont abordées plus loin dans cet article.</p> </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="Classe_de_caractères"><span id="Classe_de_caract.C3.A8res"></span>Classe de caractères</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=6&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Classe de caractères" 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>modifier</span> </a> </span> </div> <section class="mf-section-5 collapsible-block" id="mf-section-5"> <p>Une classe de caractères désigne un ensemble de caractères. Elle peut être définie de différentes manières :</p> <ul> <li>en extension (<code>[0123456789]</code> pour les caractères de « 0 » à « 9 ») ;</li> <li>en <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Intension_et_extension?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Intension et extension">intension</a> (<code>[0-9]</code> en conservant cet exemple) ;</li> <li>négativement : les classes <code>[^0123456789]</code> et <code>[^0-9]</code> désignent chacune l'ensemble des caractères qui ne sont pas des chiffres décimaux.</li> </ul> <p>Des unions de classes de caractères peuvent être faites : <code>[0-9ab]</code> désigne l'ensemble constitué des caractères « 0 » à « 9 » et des lettres « a » et « b ». Certaines bibliothèques permettent également de faire des intersections de classes de caractères.</p> <p>Entre les crochets, les métacaractères sont interprétés de manière littérale : <code>[.?*]</code> désigne l'ensemble constitué des caractères « . », « ? » et « * ».</p> <div class="mw-heading mw-heading3"> <h3 id="Standardisation_et_application">Standardisation et application</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=7&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Standardisation et application" 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>modifier</span> </a> </span> </div> <p>Les classes de caractères les plus utilisées sont généralement fournies avec le moteur d'expression régulière. Un inventaire de ces classes est dressé dans la table ci-dessous.</p> <p>La bibliothèque POSIX définit des classes au départ pour l'ASCII, puis, par extension, pour d'autres formes de codage de caractères, en fonction des <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Param%C3%A8tres_r%C3%A9gionaux?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Paramètres régionaux">paramètres régionaux</a>.</p> <p>Dans Unicode et des langages comme le perl, des ensembles de caractères sont définis au travers de la notion de propriétés de caractères. Cela permet de désigner un ensemble de caractères en fonction de sa catégorie (exemples : lettre, ponctuation ouvrante, ponctuation fermante, séparateur, caractère de contrôle), en fonction du sens d'écriture (par exemple de gauche à droite ou de droite à gauche), en fonction de l'alphabet (exemples : latin, cyrillique, grec, hiragana) ; en fonction de l'allocation des blocs, ou même selon les mêmes principes que les classes de caractères POSIX<sup id="cite_ref-8" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-8"><span class="cite_crochet">[</span>6<span class="cite_crochet">]</span></a></sup> (à ce sujet, lire la section <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#Expressions_r%C3%A9guli%C3%A8res_et_Unicode">Expressions régulières et Unicode</a>).</p> <table class="wikitable"> <tbody> <tr> <th>POSIX</th> <th>Non-standard</th> <th>perl, Python</th> <th>Vim</th> <th>Java</th> <th>Unicode<sup id="cite_ref-9" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-9"><span class="cite_crochet">[</span>7<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-10" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-10"><span class="cite_crochet">[</span>8<span class="cite_crochet">]</span></a></sup></th> <th>ASCII</th> <th>Description</th> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td><code>\p{ASCII}</code></td> <td></td> <td><code>[\x00-\x7F]</code></td> <td>Caractères <a href="https://fr-m-wikipedia-org.translate.goog/wiki/ASCII?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="ASCII">ASCII</a></td> </tr> <tr> <td><code>[:alnum:]</code></td> <td></td> <td></td> <td></td> <td><code>\p{Alnum}</code></td> <td></td> <td><code>A-Za-z0-9</code></td> <td>Caractères <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Alphanum%C3%A9rique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Alphanumérique">alphanumériques</a></td> </tr> <tr> <td></td> <td><code>[:word:]</code></td> <td><code>\w</code></td> <td><code>\w</code></td> <td><code>\w</code></td> <td></td> <td><code>A-Za-z0-9_</code></td> <td>Caractères alphanumériques, et « _ »</td> </tr> <tr> <td></td> <td></td> <td><code>\W</code></td> <td><code>\W</code></td> <td><code>\W</code></td> <td></td> <td><code>^A-Za-z0-9_</code></td> <td>Caractères ne composant pas les mots</td> </tr> <tr> <td><code>[:alpha:]</code></td> <td></td> <td></td> <td><code>\a</code></td> <td><code>\p{Alpha}</code></td> <td><code>\p{L}</code> ou <code>\p{Letter}</code></td> <td><code>A-Za-z</code></td> <td>Caractères alphabétiques</td> </tr> <tr> <td><code>[:blank:]</code></td> <td></td> <td></td> <td><code>\s</code></td> <td><code>\p{Blank}</code></td> <td></td> <td><code> <a href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=/t&action=edit&redlink=1&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="new" title="/t (page inexistante)">\t</a></code></td> <td>Espace et tabulation</td> </tr> <tr> <td></td> <td></td> <td><code>\b</code></td> <td><code>\< \></code></td> <td><code>\b</code></td> <td></td> <td><code>(?<=\W)(?=\w)|(?<=\w)(?=\W)</code></td> <td>Positions de début et fin de mots</td> </tr> <tr> <td></td> <td></td> <td><code>\B</code></td> <td></td> <td><code>\B</code></td> <td></td> <td><code>(?<=\W)(?=\W)|(?<=\w)(?=\w)</code></td> <td>Positions ne correspondant pas à un début ou une fin de mot</td> </tr> <tr> <td><code>[:cntrl:]</code></td> <td></td> <td></td> <td></td> <td><code>\p{Cntrl}</code></td> <td><code>\p{Cc}</code> ou <code>\p{Control}</code></td> <td><code>\x00-\x1F\x7F</code></td> <td><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Caract%C3%A8re_de_contr%C3%B4le?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Caractère de contrôle">Caractères de contrôle</a></td> </tr> <tr> <td><code>[:digit:]</code></td> <td></td> <td><code>\d</code></td> <td><code>\d</code></td> <td><code>\p{Digit}</code> ou <code>\d</code></td> <td><code>\p{Nd}</code> ou <code>\p{Decimal_Digit_Number}</code></td> <td><code>0-9</code></td> <td>Chiffres décimaux</td> </tr> <tr> <td></td> <td></td> <td><code>\D</code></td> <td><code>\D</code></td> <td><code>\D</code></td> <td><code>\P{Nd}</code> ou <code>\P{Decimal_Digit_Number}</code></td> <td><code>^0-9</code></td> <td>Autre chose qu'un chiffre décimal</td> </tr> <tr> <td><code>[:graph:]</code></td> <td></td> <td></td> <td></td> <td><code>\p{Graph}</code></td> <td></td> <td><code>\x21-\x7E</code></td> <td>Caractères visibles</td> </tr> <tr> <td><code>[:lower:]</code></td> <td></td> <td></td> <td><code>\l</code></td> <td><code>\p{Lower}</code></td> <td><code>\p{Ll}</code> ou <code>\p{Lowercase_Letter}</code></td> <td><code>a-z</code></td> <td>Lettres en minuscule</td> </tr> <tr> <td><code>[:print:]</code></td> <td></td> <td></td> <td><code>\p</code></td> <td><code>\p{Print}</code></td> <td></td> <td><code>\x20-\x7E</code></td> <td><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Caract%C3%A8res_imprimables?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Caractères imprimables">Caractères imprimables</a></td> </tr> <tr> <td><code>[:punct:]</code></td> <td></td> <td></td> <td></td> <td><code>\p{Punct}</code></td> <td><code>\p{P}</code> ou <code>\p{Punctuation}</code></td> <td><code>][!"#$%&'()*+,./:;<=>?@\^_`{|}~-</code></td> <td>Caractères de ponctuation</td> </tr> <tr> <td><code>[:space:]</code></td> <td></td> <td><code>\s</code></td> <td><code>\_s</code></td> <td><code>\p{Space}</code> ou <code>\s</code></td> <td><code>\p{Z}</code> ou <code>\p{Separator}</code></td> <td><code> <a href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=/t&action=edit&redlink=1&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="new" title="/t (page inexistante)">\t</a><a href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=/r&action=edit&redlink=1&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="new" title="/r (page inexistante)">\r</a><a href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=/n&action=edit&redlink=1&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="new" title="/n (page inexistante)">\n</a><a href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=/v&action=edit&redlink=1&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="new" title="/v (page inexistante)">\v</a><a href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=/f&action=edit&redlink=1&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="new" title="/f (page inexistante)">\f</a></code></td> <td><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Espace_(typographie)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Espace (typographie)">Caractères d'espacement</a></td> </tr> <tr> <td></td> <td></td> <td><code>\S</code></td> <td><code>\S</code></td> <td><code>\S</code></td> <td><code>\P{Z}</code> ou <code>\P{Separator}</code></td> <td><code>^ \t\r\n\v\f</code></td> <td>Autre chose qu'un caractère d'espacement</td> </tr> <tr> <td><code>[:upper:]</code></td> <td></td> <td></td> <td><code>\u</code></td> <td><code>\p{Upper}</code></td> <td><code>\p{Lu}</code> ou <code>\p{Uppercase_Letter}</code></td> <td><code>A-Z</code></td> <td><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Capitale_et_majuscule?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Capitale et majuscule">Lettres capitales</a></td> </tr> <tr> <td><code>[:xdigit:]</code></td> <td></td> <td></td> <td><code>\x</code></td> <td><code>\p{XDigit}</code></td> <td></td> <td><code>A-Fa-f0-9</code></td> <td>Chiffres hexadécimaux</td> </tr> <tr> <td></td> <td></td> <td><code>\A</code></td> <td></td> <td></td> <td></td> <td></td> <td>Début de chaîne de caractère</td> </tr> <tr> <td></td> <td></td> <td><code>\Z</code></td> <td></td> <td></td> <td></td> <td></td> <td>Fin de chaîne de caractère</td> </tr> </tbody> </table> <p>Par exemple, dans le standard POSIX, <code>[[:upper:]ab]</code> fait correspondre un caractère parmi l’ensemble formé par toutes les lettres majuscules ainsi que les lettres minuscules « a » et « b ». Dans le standard ASCII, cette expression régulière s'écrirait <code>[A-Zab]</code>.</p> <div class="mw-heading mw-heading3"> <h3 id="Classe_d'équivalence"><span id="Classe_d.27.C3.A9quivalence"></span>Classe d'équivalence</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=8&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Classe d'équivalence" 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>modifier</span> </a> </span> </div> <p>La notion de classe d'équivalence ne doit pas être confondue avec la notion de classe de caractères.</p> <p>Par exemple, dans la locale FR, la classe [=e=] regroupe l'ensemble des lettres {e, é, è, ë, ê}.</p> <p>Ceci signifie que lorsqu'elles sont collationnées, les lettres {e, é, è, ë, ê} apparaissent dans le même jeu de caractères, après le <i>d</i>, et avant le <i>f</i>.</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="Fonctions_avancées"><span id="Fonctions_avanc.C3.A9es"></span>Fonctions avancées</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=9&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Fonctions avancé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>modifier</span> </a> </span> </div> <section class="mf-section-6 collapsible-block" id="mf-section-6"> <p>La plupart des standards et moteurs d'expressions régulières proposent des fonctions avancées. Notamment :</p> <ul> <li><b>Quantificateurs non gloutons</b> : Par défaut, les quantificateurs « + » et « * » recherchent la plus grande séquence correspondant au motif recherché. Ces nouveaux quantificateurs, souvent notés « +? » et « *? », permettent à l'inverse de rechercher la plus petite séquence correspondante. Par exemple, l'expression régulière <code>ab+?</code> appliquée à la chaîne « abbbbc » entre en correspondance avec la sous-chaîne « ab » plutôt que « abbbb ».</li> <li><b>Capture des groupements</b> : La capture des groupements permet de réutiliser un groupement entré en correspondance pour un traitement ultérieur, par exemple une substitution. Dans la plupart des syntaxes, il est possible d'accéder au <i>n<sup>ème</sup></i> groupement capturé par la syntaxe « <code>\n</code> » ou parfois « <code>$n</code> », où <i>n</i> est un entier.</li> <li><b>Groupements non capturants</b> : Lorsqu'elle est implémentée, la capture des groupements est souvent le comportement par défaut. Comme elle a un coût algorithmique important, il est parfois possible de désactiver la capture de certains groupements. On peut par exemple citer la syntaxe « <code>(?:groupement)</code> ».</li> <li><b>Captures nommées</b> : Les longues expressions régulières avec de nombreux groupements peuvent être complexes à lire et à maintenir. Pour faciliter cette tâche, certains moteurs permettent de nommer les groupements, par exemple avec la syntaxe « <code>(?P<nom>groupement)</code> » en <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Python_(langage)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Python (langage)">Python</a>.</li> <li><b>Références arrières</b> : Les références arrières permettent de faire référence à un même groupement capturé. Par exemple « <code>b(.)b\1</code> » entrera en correspondance avec « bébé » et « bobo » mais pas « baby ». Cette fonctionnalité, proposée par la plupart des moteurs, permet de reconnaître des langages non rationnels tels que <i>a<sup>n</sup>ba<sup>n</sup></i> pour tout <i>n</i> entier positif.</li> <li><b>Modificateurs de mode de correspondance</b> : ces modificateurs permettent de faire varier localement le comportement de l'expression régulière. Par exemple, alors qu'elles sont normalement <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Sensibilit%C3%A9_%C3%A0_la_casse?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Sensibilité à la casse">sensibles à la casse</a>, l'expression perl « <code>(?i:nom)-Prénom</code> » entrera en correspondance avec « NOM-Prénom » et « Nom-Prénom » mais pas « Nom-prénom ». Parmi les autres modificateurs, on peut citer le mode multi-lignes, le mode non-gourmand ou le « free-spacing mode ».</li> <li><b>Conditions</b> : certains moteurs permettent de construire des structures « <code>if ... then ... else ...</code> » au sein même des expressions régulières. Par exemple, en perl, l'expression « <code>^(?(?=[abc])[def]|[ghi])</code> » se lit : « si la chaîne commence par la lettre a, b ou c, chercher à leur suite la lettre d, e ou f, sinon chercher la lettre g, h ou i. »</li> <li><b>Commentaires</b> : Dans un souci de lisibilité, des moteurs permettent de commenter les expressions régulières au sein même de celles-ci.</li> <li><b>Code embarqué</b> : Lorsqu'une expression régulière est utilisée au sein d'un programme, cette fonctionnalité permet de déclencher des actions lorsqu'une partie de la chaîne est entrée en correspondance.</li> </ul> </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="Notations_:_implémentations_et_standardisation"><span id="Notations_:_impl.C3.A9mentations_et_standardisation"></span>Notations : implémentations et standardisation</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=10&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Notations : implémentations et standardisation" 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>modifier</span> </a> </span> </div> <section class="mf-section-7 collapsible-block" id="mf-section-7"> <p>Les notations utilisées sont très variables. Ce chapitre regroupe d'une part les notations propres à différentes implémentations, et d'autre part, l'entreprise de normalisation.</p> <div class="mw-heading mw-heading3"> <h3 id="Standard_POSIX">Standard POSIX</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=11&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Standard 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>modifier</span> </a> </span> </div> <p>Le standard <a href="https://fr-m-wikipedia-org.translate.goog/wiki/POSIX?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="POSIX">POSIX</a> a cherché à remédier à la prolifération des syntaxes et fonctionnalités, en offrant un standard d’expressions régulières configurables. On peut en obtenir un aperçu en lisant le manuel de <code>regex</code> sous une grande partie des dialectes <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Unix?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Unix">Unix</a> dont <a href="https://fr-m-wikipedia-org.translate.goog/wiki/GNU/Linux?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="GNU/Linux">GNU/Linux</a>. Toutefois, même cette norme n’inclut pas toutes les fonctionnalités ajoutées aux expressions régulières de Perl.</p> <p>Enfin, POSIX ajoute le support pour des plateformes utilisant un jeu de caractère non basé sur l’ASCII, notamment <a href="https://fr-m-wikipedia-org.translate.goog/wiki/EBCDIC?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="EBCDIC">EBCDIC</a>, et un support partiel des locales pour certains méta-caractères.</p> <div class="mw-heading mw-heading4"> <h4 id="Expressions_régulières_basiques"><span id="Expressions_r.C3.A9guli.C3.A8res_basiques"></span>Expressions régulières basiques</h4><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=12&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Expressions régulières basiques" 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>modifier</span> </a> </span> </div> <p>Les utilitaires du monde <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Unix?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Unix">Unix</a> tels que <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Stream_Editor?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Stream Editor">sed</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/GNU_grep?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="GNU grep">GNU grep</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Ed_(logiciel)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Ed (logiciel)">ed</a> ou <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Vi?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Vi">vi</a> utilisent par défaut la norme BRE (« <i>Basic Regular Expression</i> ») de POSIX. Dans celle-ci, les accolades, les parenthèses, le symbole « ? » et le symbole « + » ne sont pas des métacaractères : ils ne représentent qu'eux-mêmes. Pour prendre leur sémantique de métacaractères, ils ont besoin d'être <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Caract%C3%A8re_d%27%C3%A9chappement?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Caractère d'échappement">échappés</a> par le symbole « \ ».</p> <p>Exemple : l'expression régulière <code>(ab.)+</code> reconnaît « (abc)+ » mais pas « abcabd », pour laquelle <code>\(ab.\)\+</code> convient.</p> <div class="mw-heading mw-heading4"> <h4 id="Expressions_régulières_étendues"><span id="Expressions_r.C3.A9guli.C3.A8res_.C3.A9tendues"></span>Expressions régulières étendues</h4><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=13&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Expressions régulières étendues" 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>modifier</span> </a> </span> </div> <p>Les expressions régulières étendues POSIX (ERE pour « <i>Extended Regular Expression</i> ») sont souvent supportées dans les utilitaires des distributions Unix et GNU/Linux en incluant le <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Drapeau_(informatique)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Drapeau (informatique)">drapeau</a> <var>-E</var> dans la <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Ligne_de_commande?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Ligne de commande">ligne de commande</a> d’invocation de ces utilitaires. Contrairement aux expressions régulières basiques, elles reconnaissent les caractères vus précédemment comme des métacaractères. Ils doivent ainsi être échappés pour être interprétés littéralement.</p> <p>La plupart des exemples donnés en présentation sont des expressions régulières étendues POSIX.</p> <div class="mw-heading mw-heading4"> <h4 id="Séquences_d’échappement"><span id="S.C3.A9quences_d.E2.80.99.C3.A9chappement"></span>Séquences d’échappement</h4><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=14&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Séquences d’échappement" 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>modifier</span> </a> </span> </div> <div class="bandeau-container bandeau-section metadata bandeau-niveau-information"> <div class="bandeau-cell bandeau-icone-css loupe"> Article connexe : <a href="https://fr-m-wikipedia-org.translate.goog/wiki/S%C3%A9quence_d%27%C3%A9chappement?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Séquence d'échappement">Séquence d'échappement</a>. </div> </div> <p>Comme les caractères <code>(</code>, <code>)</code>, <code>[</code>, <code>]</code>, <code>.</code>, <code>*</code>, <code>?</code>, <code>+</code>, <code>^</code>, <code>|</code>, <code>$</code> , <code>-</code> et <code>\</code> sont utilisés comme symboles spéciaux, ils doivent être référencés dans une <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Caract%C3%A8re_d%27%C3%A9chappement?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Caractère d'échappement">séquence d’échappement</a> s’ils doivent désigner littéralement le caractère correspondant. Ceci se fait en les précédant avec une barre oblique inversée <code>\</code>.</p> <div class="mw-heading mw-heading3"> <h3 id="Notation_étendue_dans_vim_et_emacs"><span id="Notation_.C3.A9tendue_dans_vim_et_emacs"></span>Notation étendue dans vim et emacs</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=15&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Notation étendue dans vim et emacs" 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>modifier</span> </a> </span> </div> <p>Des extensions semblables sont utilisées dans l’éditeur <i><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Emacs?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Emacs">emacs</a></i>, qui utilise un jeu de commandes différent du standard POSIX ; mais reprend les mêmes expressions régulières en apportant une notation étendue. Les <b>expressions régulières étendues</b> sont maintenant supportées aussi dans <i><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Vim?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Vim">vim</a></i>, la version améliorée de <i>vi</i>.</p> <table class="wikitable"> <tbody> <tr> <th>Opérateur étendu (non POSIX)</th> <th>Description</th> <th>Exemple</th> </tr> <tr> <td><code>\{<i>m</i>,<i>n</i>\}</code></td> <td>Dans la notation étendue, cela crée un quantificateur borné personnalisé, permettant de faire correspondre exactement de <i>m</i> à <i>n</i> occurrences de ce qui précède, <i>m</i> et <i>n</i> étant deux entiers tels que <i>m</i> < <i>n</i>. Chacun des deux paramètres peut être omis : si le premier paramètre <i>m</i> est omis, il prend la valeur par défaut 0 ; si le second paramètre <i>n</i> est omis, mais la virgule est présente, il est considéré comme infini ; si le second paramètre <i>n</i> est omis ainsi que la virgule séparatrice, il prend la valeur par défaut égale au premier paramètre <i>m</i>.</td> <td>Voir exemples ci-dessous.</td> </tr> <tr> <td><code>\( \)</code></td> <td>Dans la notation étendue, les parenthèses de groupement (dans une séquence d’échappement) permettent de délimiter un ensemble d’alternatives, ou toute sous-expression régulière (à l’exception des conditions de début et fin de ligne) pour leur appliquer un quantificateur. De plus, ces parenthèses délimitent un groupe de capture numéroté qui peut être utilisé pour les substitutions (on référence alors les groupes capturés dans la chaîne de substitution avec <code>$<i>n</i></code> où <i>n</i> est le numéro de groupe de capture entre 1 et 9, la totalité de la chaîne trouvée étant représentée par <code>$&</code>).</td> <td>Voir exemples ci-dessous.</td> </tr> </tbody> </table> <p>De plus, de nombreuses autres séquences d’échappement sont ajoutées pour désigner des classes de caractères prédéfinies. Elles sont spécifiques à chaque utilitaire ou parfois variables en fonction de la version ou la plateforme (cependant elles sont stables depuis longtemps dans emacs qui a fait figure de précurseur de ces extensions, que d’autres auteurs ont partiellement implémentées de façon limitée ou différente).</p> <div class="mw-heading mw-heading3"> <h3 id="Python">Python</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=16&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Python" 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>modifier</span> </a> </span> </div> <p><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Python_(langage)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Python (langage)">Python</a> utilise des expressions régulières basées sur les expressions régulières POSIX, avec quelques extensions ou différences.</p> <p>Les éléments compatibles POSIX sont les suivants :</p> <ul> <li>opérateurs <code>[ ]</code>, <code>.</code>, <code>*</code>, <code>?</code>, <code>+</code>, <code>|</code>, <code>( )</code></li> <li>caractères <code>\t</code>, <code>\n</code>, <code>\v</code>, <code>\f</code>, <code>\r</code></li> <li><code>\<i>ooo</i></code> : caractère littéral dont le code octal (entre 0 et 377, sur 1 à 3 chiffres) est <i>ooo</i>.</li> <li><code>\x<i>NN</i></code> : caractère littéral dont le code hexadécimal est <i>NN</i> (sur 2 chiffres).</li> </ul> <p>La séquence <code>\b</code> désigne le caractère de retour arrière (<code>0x08</code> avec un codage compatible ASCII) lorsqu'elle est utilisée à l'intérieur d'une classe de caractère, et la limite d'un mot autrement.</p> <div class="mw-heading mw-heading3"> <h3 id="Bibliothèque_BSD"><span id="Biblioth.C3.A8que_BSD"></span>Bibliothèque BSD</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=17&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Bibliothèque BSD" 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>modifier</span> </a> </span> </div> <p>Le <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Berkeley_Software_Distribution?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Berkeley Software Distribution">système d'exploitation BSD</a> utilise la bibliothèque <i>regex</i> écrite par <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Henry_Spencer?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Henry Spencer">Henry Spencer</a>. Compatible avec la norme POSIX 1003.2, cette bibliothèque est également utilisée par MySQL <sup id="cite_ref-11" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-11"><span class="cite_crochet">[</span>9<span class="cite_crochet">]</span></a></sup> (avec les opérateurs REGEXP et NOT REGEXP<sup id="cite_ref-12" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-12"><span class="cite_crochet">[</span>10<span class="cite_crochet">]</span></a></sup>) et PostgreSQL<sup id="cite_ref-13" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-13"><span class="cite_crochet">[</span>11<span class="cite_crochet">]</span></a></sup> (avec l'opérateur « ~ » et ses variantes).</p> <div class="mw-heading mw-heading3"> <h3 id="Tcl">Tcl</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=18&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Tcl" 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>modifier</span> </a> </span> </div> <p>Le moteur d'expressions régulières du langage <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Tool_Command_Language?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Tool Command Language">Tcl</a> est issu de développements d'Henry Spencer postérieurs à ceux de la bibliothèque BSD<sup id="cite_ref-14" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-14"><span class="cite_crochet">[</span>12<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-wikitcl_15-0" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-wikitcl-15"><span class="cite_crochet">[</span>13<span class="cite_crochet">]</span></a></sup>. Les expressions régulières sont appelées Expressions régulières avancées (ou ARE, Advanced Regular Expressions) et sont légèrement différentes des expressions régulières étendues de POSIX<sup id="cite_ref-wikitcl_15-1" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-wikitcl-15"><span class="cite_crochet">[</span>13<span class="cite_crochet">]</span></a></sup>. Les expressions régulières basiques et étendues sont également supportées.</p> <p><span class="need_ref" title="Une source est souhaitée pour ce passage." style="cursor:help;">Contrairement à d'autres moteurs, celui-ci fonctionne à base d'automates, ce qui le rend moins performant lorsque les captures ou le <i>backtracking</i> sont nécessaires, mais plus performant dans le cas contraire.</span><sup class="need_ref_tag" style="padding-left:2px;"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Aide:R%C3%A9f%C3%A9rence_n%C3%A9cessaire?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Aide:Référence nécessaire">[<abbr class="abbr" title="référence">réf.</abbr> souhaitée]</a></sup></p> <div class="mw-heading mw-heading3"> <h3 id="Perl">Perl</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=19&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Perl" 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>modifier</span> </a> </span> </div> <p><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Perl_(langage)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Perl (langage)">Perl</a> offre un ensemble d’extensions particulièrement riche. Ce <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Langage_de_programmation?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Langage de programmation">langage de programmation</a> connaît un succès très important dû à la présence d’opérateurs d’expressions régulières inclus dans le langage lui-même. Les extensions qu’il propose sont également disponibles pour d’autres programmes sous le nom de <i>lib <a href="https://fr-m-wikipedia-org.translate.goog/wiki/PCRE?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="PCRE">PCRE</a></i> (<span class="lang-en" lang="en"><i>Perl-Compatible Regular Expressions</i></span>, littéralement <i>bibliothèque d’expressions régulières compatible avec Perl</i>). Cette <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Biblioth%C3%A8que_logicielle?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Bibliothèque logicielle">bibliothèque</a> a été écrite initialement pour le <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Serveur_de_courrier_%C3%A9lectronique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Serveur de courrier électronique">serveur de courrier électronique</a> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Exim?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Exim">Exim</a>, mais est maintenant reprise par d’autres projets comme <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Langage_de_programmation_Python?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Langage de programmation Python">Python</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Apache_(logiciel)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Apache (logiciel)">Apache</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Postfix?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Postfix">Postfix</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/KDE?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="KDE">KDE</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Analog?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Analog">Analog</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/PHP?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="PHP">PHP</a> et <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Ferite?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Ferite">Ferite</a>.</p> <p>Les spécifications de <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Perl_6?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Perl 6">Perl 6</a> régularisent et étendent le mécanisme du système d’expressions régulières. De plus il est mieux intégré au langage que dans Perl 5. Le contrôle du <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Retour_sur_trace?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Retour sur trace">retour sur trace</a> y est très fin. Le système de regex de Perl 6 est assez puissant pour écrire des <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Analyseur_syntaxique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Analyseur syntaxique">analyseurs syntaxiques</a> sans l’aide de modules externes d’analyse. Les expressions régulières y sont une forme de sous-routines et les grammaires une forme de <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Classe_(informatique)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Classe (informatique)">classe</a>. Le mécanisme est mis en œuvre en <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Assembleur?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Assembleur">assembleur</a> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Parrot_(machine_virtuelle)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Parrot (machine virtuelle)">Parrot</a> par le module <a href="https://fr-m-wikipedia-org.translate.goog/wiki/PGE_(Perl)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="PGE (Perl)">PGE</a> dans la mise en œuvre Parrot de Perl 6 et en <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Haskell?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Haskell">Haskell</a> dans la mise en œuvre <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Pugs?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Pugs">Pugs</a>. Ces mises en œuvre sont une étape importante pour la réalisation d’un <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Compilateur?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Compilateur">compilateur</a> Perl 6 complet. Certaines des fonctionnalités des regexp de Perl 6, comme les captures nommées, sont intégrées depuis Perl 5.10<sup id="cite_ref-16" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-16"><span class="cite_crochet">[</span>14<span class="cite_crochet">]</span></a></sup>.</p> <div class="mw-heading mw-heading3"> <h3 id="PHP">PHP</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=20&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : PHP" 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>modifier</span> </a> </span> </div> <p>PHP supporte deux formes de notations : la syntaxe <a href="https://fr-m-wikipedia-org.translate.goog/wiki/POSIX?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="POSIX">POSIX</a><sup id="cite_ref-17" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-17"><span class="cite_crochet">[</span>15<span class="cite_crochet">]</span></a></sup> (POSIX 1003.2) et celle, beaucoup plus riche et performante<sup id="cite_ref-18" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-18"><span class="cite_crochet">[</span>16<span class="cite_crochet">]</span></a></sup>, de la bibliothèque <a href="https://fr-m-wikipedia-org.translate.goog/wiki/PCRE?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="PCRE">PCRE</a><sup id="cite_ref-19" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-19"><span class="cite_crochet">[</span>17<span class="cite_crochet">]</span></a></sup> (Perl Compatible Regular Expression).</p> <p>Un des défauts reprochés à PHP est lié à son support limité des chaînes de caractères, alors même qu’il est principalement utilisé pour traiter du texte, puisque le texte ne peut y être représenté que dans un jeu de caractères codés sur 8 bits, sans pouvoir préciser clairement quel codage est utilisé. En pratique, il faut donc adjoindre à PHP des bibliothèques de support pour le codage et le décodage des textes, ne serait-ce que pour les représenter en UTF-8. <span class="need_ref" title="Ce passage nécessite une référence." style="cursor:help;">Toutefois, même en UTF-8, le problème se pose immédiatement avec la sémantique des expressions régulières puisque les caractères ont alors un codage de longueur variable, qui nécessite de complexifier les expressions régulières.</span><sup class="need_ref_tag" style="padding-left:2px;"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Aide:R%C3%A9f%C3%A9rence_n%C3%A9cessaire?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Aide:Référence nécessaire">[réf. nécessaire]</a></sup> <span class="need_ref" title="Ce passage nécessite une référence." style="cursor:help;">Des extensions optionnelles de PHP sont donc développées pour créer un nouveau type de données pour le texte, afin de faciliter son traitement (et être à terme compatible avec Perl6 qui, comme <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Haskell?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Haskell">Haskell</a>, disposera nativement du support intégral d’Unicode).</span><sup class="need_ref_tag" style="padding-left:2px;"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Aide:R%C3%A9f%C3%A9rence_n%C3%A9cessaire?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Aide:Référence nécessaire">[réf. nécessaire]</a></sup></p> <div class="mw-heading mw-heading3"> <h3 id="ICU">ICU</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=21&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : ICU" 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>modifier</span> </a> </span> </div> <div class="bandeau-container metadata bandeau-section bandeau-niveau-modere"> <div class="bandeau-cell bandeau-icone" style="display:table-cell;padding-right:0.5em"> <figure class="mw-halign-center noviewer" typeof="mw:File"> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Fichier:2017-fr.wp-orange-source.svg?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-file-description"> <noscript> <img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/2017-fr.wp-orange-source.svg/25px-2017-fr.wp-orange-source.svg.png" decoding="async" width="25" height="25" class="mw-file-element" data-file-width="512" data-file-height="512"> </noscript><span class="lazy-image-placeholder" style="width: 25px;height: 25px;" data-src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/2017-fr.wp-orange-source.svg/25px-2017-fr.wp-orange-source.svg.png" data-alt="" data-width="25" data-height="25" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/2017-fr.wp-orange-source.svg/38px-2017-fr.wp-orange-source.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a1/2017-fr.wp-orange-source.svg/50px-2017-fr.wp-orange-source.svg.png 2x" data-class="mw-file-element"> </span></a> <figcaption></figcaption> </figure> </div> <div class="bandeau-cell" style="display:table-cell;padding-right:0.5em"> <div class="mw-collapsible mw-collapsed"> <b>Cette section <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Citez_vos_sources?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Wikipédia:Citez vos sources">ne cite pas suffisamment ses sources</a></b><small> (mars 2017)</small>. <div class="mw-collapsible-content"> Pour l'améliorer, ajoutez <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Aide:Identifier_des_sources_fiables?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Aide:Identifier des sources fiables">des références de qualité et vérifiables</a> (<a href="https://fr-m-wikipedia-org.translate.goog/wiki/Aide:Ins%C3%A9rer_une_r%C3%A9f%C3%A9rence_(%C3%89diteur_visuel)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Aide:Insérer une référence (Éditeur visuel)">comment faire ?</a>) ou le modèle <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Mod%C3%A8le:R%C3%A9f%C3%A9rence_n%C3%A9cessaire?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modèle:Référence nécessaire">{{Référence nécessaire}}</a> sur les passages nécessitant une source. </div> </div> </div> </div> <p><a href="https://fr-m-wikipedia-org.translate.goog/wiki/International_Components_for_Unicode?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="International Components for Unicode">ICU</a> définit une bibliothèque portable pour le traitement de textes internationaux. Celle-ci est développée d’abord en <a href="https://fr-m-wikipedia-org.translate.goog/wiki/C_(langage)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="C (langage)">langage C</a> (version nommée ICU4C) ou pour la <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Plateforme_Java?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Plateforme Java">plateforme Java</a> (version nommée ICU4J). Des portages (ou adaptations) sont aussi disponibles dans de nombreux autres langages, en utilisant la bibliothèque développée pour le langage C (ou <a href="https://fr-m-wikipedia-org.translate.goog/wiki/C%2B%2B?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="C++">C++</a>).</p> <p>Les expressions régulières utilisables dans ICU reprennent les caractéristiques des expressions régulières de Perl, mais les complètent pour leur apporter le support intégral du jeu de caractères Unicode (voir la section suivante pour les questions relatives à la normalisation toujours en cours). Elles clarifient également leur signification en rendant les expressions régulières indépendantes du jeu de caractère codé utilisé dans les documents, puisque le jeu de caractères Unicode est utilisé comme codage pivot interne.</p> <p>En effet, les expressions régulières de Perl (ou PCRE) ne sont pas portables pour traiter des documents utilisant des jeux de caractères codés différents, et ne supportent pas non plus correctement les jeux de caractères codés multi-octets (à longueur variable tels que <a href="https://fr-m-wikipedia-org.translate.goog/wiki/ISO_2022?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="ISO 2022">ISO 2022</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Shift-JIS?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Shift-JIS">Shift-JIS</a>, ou <a href="https://fr-m-wikipedia-org.translate.goog/wiki/UTF-8?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="UTF-8">UTF-8</a>), ou codés sur une ou plusieurs unités binaires de plus de 8 bits (par exemple <a href="https://fr-m-wikipedia-org.translate.goog/wiki/UTF-16?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="UTF-16">UTF-16</a>) puisque le codage effectif de ces jeux sous forme de séquences d’octets dépend de la plateforme utilisée pour le traitement (ordre de stockage des octets dans un mot de plus de 8 bits).</p> <p>ICU résout cela en adoptant un traitement utilisant en interne un jeu unique défini sur 32 bits et supportant la totalité du jeu de caractères universel (UCS), tel qu’il est défini dans la norme <a href="https://fr-m-wikipedia-org.translate.goog/wiki/ISO/CEI_10646?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="ISO/CEI 10646">ISO/IEC 10646</a> et précisé sémantiquement dans le standard <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Unicode?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Unicode">Unicode</a> (qui ajoute à la norme le support de propriétés informatives ou normatives sur les caractères, et des recommandations pour le traitement automatique du texte, certaines de ces recommandations étant optionnelles ou informatives, d’autres étant devenues standards et intégrées au standard Unicode lui-même, d’autres enfin ayant acquis le statut de norme internationale à l’ISO ou de norme nationale dans certains pays).</p> <p>ICU supporte les extensions suivantes<sup id="cite_ref-20" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-20"><span class="cite_crochet">[</span>18<span class="cite_crochet">]</span></a></sup>, directement dans les expressions régulières, ou dans l’expression régulière d’une classe de caractères (entre <code>[…]</code>) :</p> <ul> <li><code>\u<i>hhhh</i></code> : correspond à un caractère dont le point de code (selon ISO/IEC 10646 et Unicode) a la valeur hexadécimale <i>hhhh</i>.</li> <li><code>\U<i>hhhhhhhh</i></code> : correspond à un caractère dont le point de code (selon ISO/IEC 10646 et Unicode) a la valeur hexadécimale <i>hhhhhhhh</i> ; exactement huit chiffres hexadécimaux doivent être fournis, même si le point de code le plus grand accepté est <code>\U0010ffff</code>.</li> <li><code>\N{<i>NOM DU CARACTÈRE UNICODE</i>}</code> : correspond au caractère désigné par son nom normalisé, c’est-à-dire tel qu’il est défini de façon irrévocable dans la norme ISO/IEC 10646 (et repris dans le standard Unicode). Cette syntaxe est une version simplifiée de la syntaxe suivante permettant de désigner d’autres propriétés sur les caractères :</li> <li><code>\p{<i>code d’une propriété Unicode</i>}</code> : correspond à un caractère doté de la propriété Unicode spécifiée.</li> <li><code>\P{<i>code d’une propriété Unicode</i>}</code> : correspond à un caractère non doté de la propriété Unicode spécifiée.</li> <li><code>\s</code> : correspond à un caractère séparateur ; un séparateur est défini comme <code>[\t\n\f\r\p{Z}]</code>.</li> </ul> <p>Les expressions régulières d’ICU sont actuellement parmi les plus puissantes et les plus expressives dans le traitement des documents multilingues. Elles sont largement à la base de la normalisation (toujours en cours) des expressions régulières Unicode (voir ci-dessous) et un sous-ensemble est supporté nativement dans la bibliothèque standard du langage <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Java_(langage)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Java (langage)">Java</a> (qui utilise en interne un jeu de caractères portable à codage variable, basé sur <a href="https://fr-m-wikipedia-org.translate.goog/wiki/UTF-16?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="UTF-16">UTF-16</a> avec des extensions, et dont les unités de codage sont sur 16 bits).</p> <p>ICU est une bibliothèque encore en évolution. En principe, elle devrait adopter toutes les extensions annoncées dans Perl (notamment les captures nommées), dans le but d’assurer l’interopérabilité avec Perl 5, Perl 6, et PCRE, et les autres langages de plus en plus nombreux qui utilisent cette syntaxe étendue, et les auteurs d’ICU et de Perl travaillent en concert pour définir une notation commune. Toutefois, ICU adopte en priorité les extensions adoptées dans les expressions régulières décrites dans le standard Unicode, puisque ICU sert de référence principale dans cette annexe standard d’Unicode.</p> <p>Toutefois, il n’existe encore aucun standard ou norme technique pour traiter certains aspects importants des expressions régulières dans un contexte multilingue, notamment :</p> <ul> <li>La prise en compte de l’ordonnancement propre à chaque locale (c’est-à-dire l’ordre de tri, éventuellement multiniveau, des textes en fonction de la langue et de l’écriture, et des unités inséparables de texte qui peuvent comprendre un ou plusieurs caractères codés éventuellement de plusieurs façons possibles mais toutes équivalentes dans cette langue) ; ce manque de normalisation (expérimentation toujours en cours) fait apparaître des différences de traitement et donc de portabilité des classes de caractères contenant des étendues (de la forme <code>[<i>a</i>-<i>b</i>]</code>). Actuellement, ICU ne supporte encore que les étendues dans l’ordre binaire des points de code Unicode, un ordre qui n’est pas du tout approprié pour le traitement correct de nombreuses langues puisqu’il contrevient à leur ordre de collation standard.</li> <li>L’ordre des occurrences multiples trouvées dans le texte quand celles-ci peuvent se chevaucher totalement ou partiellement. Cela résulte de l’utilisation de quantificateurs variables, et influe sur le contenu des sous-chaînes capturées. Si cet ordre peut changer, et que seule la première occurrence trouvée est utilisée par exemple dans une opération de recherche et substitution automatique ou le traitement des captures, alors le traitement dépendra de l’implémentation. En théorie, les expressions régulières désignent chacune un ensemble <b>non ordonné</b> de textes, et les accords trouvés dans un texte source peuvent être eux aussi à des positions quelconques dans le texte source, puisque le résultat d’une recherche contient en fait non seulement les captures, mais aussi les positions relatives.</li> </ul> <p>Pour préciser ces derniers aspects manquants, des métacaractères supplémentaires devraient pouvoir être utilisés pour contrôler ou filtrer les occurrences trouvées, ou bien un ordre normalisé imposé à la liste des occurrences retournées. Les auteurs d’applications doivent donc être vigilants sur ces points et s’assurer de lire toutes les occurrences trouvées et pas seulement la première, afin de pouvoir décider laquelle des occurrences est la mieux appropriée à une opération donnée.</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="Expressions_régulières_et_Unicode"><span id="Expressions_r.C3.A9guli.C3.A8res_et_Unicode"></span>Expressions régulières et Unicode</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=22&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Expressions régulières et 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>modifier</span> </a> </span> </div> <section class="mf-section-8 collapsible-block" id="mf-section-8"> <div class="bandeau-container metadata bandeau-section bandeau-niveau-modere"> <div class="bandeau-cell bandeau-icone" style="display:table-cell;padding-right:0.5em"> <figure class="mw-halign-center noviewer" typeof="mw:File"> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Fichier:2017-fr.wp-orange-source.svg?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-file-description"> <noscript> <img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/2017-fr.wp-orange-source.svg/25px-2017-fr.wp-orange-source.svg.png" decoding="async" width="25" height="25" class="mw-file-element" data-file-width="512" data-file-height="512"> </noscript><span class="lazy-image-placeholder" style="width: 25px;height: 25px;" data-src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/2017-fr.wp-orange-source.svg/25px-2017-fr.wp-orange-source.svg.png" data-alt="" data-width="25" data-height="25" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/2017-fr.wp-orange-source.svg/38px-2017-fr.wp-orange-source.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a1/2017-fr.wp-orange-source.svg/50px-2017-fr.wp-orange-source.svg.png 2x" data-class="mw-file-element"> </span></a> <figcaption></figcaption> </figure> </div> <div class="bandeau-cell" style="display:table-cell;padding-right:0.5em"> <div class="mw-collapsible mw-collapsed"> <b>Cette section <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Citez_vos_sources?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Wikipédia:Citez vos sources">ne cite pas suffisamment ses sources</a></b><small> (mars 2017)</small>. <div class="mw-collapsible-content"> Pour l'améliorer, ajoutez <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Aide:Identifier_des_sources_fiables?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Aide:Identifier des sources fiables">des références de qualité et vérifiables</a> (<a href="https://fr-m-wikipedia-org.translate.goog/wiki/Aide:Ins%C3%A9rer_une_r%C3%A9f%C3%A9rence_(%C3%89diteur_visuel)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Aide:Insérer une référence (Éditeur visuel)">comment faire ?</a>) ou le modèle <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Mod%C3%A8le:R%C3%A9f%C3%A9rence_n%C3%A9cessaire?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modèle:Référence nécessaire">{{Référence nécessaire}}</a> sur les passages nécessitant une source. </div> </div> </div> </div> <p>Les expressions régulières ont originellement été utilisées avec les caractères <a href="https://fr-m-wikipedia-org.translate.goog/wiki/ASCII?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="ASCII">ASCII</a>. Beaucoup de moteurs d’expressions régulières peuvent maintenant gérer l’<a href="https://fr-m-wikipedia-org.translate.goog/wiki/Unicode?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Unicode">Unicode</a>. Sur plusieurs points, le jeu de caractères codés utilisés ne fait aucune différence, mais certains problèmes surgissent dans l’extension des expressions régulières pour Unicode.</p> <p>Une question est de savoir quel format de représentation interne d’Unicode est supporté. Tous les moteurs d’expressions régulières en ligne de commande attendent de l’<a href="https://fr-m-wikipedia-org.translate.goog/wiki/UTF-8?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="UTF-8">UTF-8</a>, mais pour les bibliothèques, certaines attendent aussi de l’UTF-8, mais d’autres attendent un jeu codé sur UCS-2 uniquement (voire son extension <a href="https://fr-m-wikipedia-org.translate.goog/wiki/UTF-16?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="UTF-16">UTF-16</a> qui restreint aussi les séquences valides), ou sur UCS-4 uniquement (voire sa restriction normalisée <a href="https://fr-m-wikipedia-org.translate.goog/wiki/UTF-32?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="UTF-32">UTF-32</a>).</p> <p>Une deuxième question est de savoir si l’intégralité de la plage des valeurs d’une version d’Unicode est supportée. Beaucoup de moteurs ne supportent que le <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Basic_Multilingual_Plane?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Basic Multilingual Plane">Basic Multilingual Plane</a>, c’est-à-dire, les caractères encodables sur 16 bits. Seuls quelques moteurs peuvent (dès 2006) gérer les plages de valeurs Unicode sur 21 bits.</p> <p>Une troisième question est de savoir comment les constructions ASCII sont étendues à l’Unicode.</p> <ul> <li>Par exemple, dans les <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Mise_en_%C5%93uvre?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Mise en œuvre">mises en œuvre</a> ASCII, les plages de valeurs de la forme <span class="nowrap"><code>[<i>x</i>-<i>y</i>]</code></span> sont valides quels que soient <i>x</i> et <i>y</i> dans la plage <span class="nowrap">0x0..0x7F</span> et <span class="nowrap"><code>codepoint(<i>x</i>) ≤ codepoint(<i>y</i>)</code></span>.</li> <li>L’extension naturelle de ces plages de valeurs Unicode changerait simplement l’exigence sur la plage de valeurs <span class="nowrap">[0..0x7F]</span> en exigence sur la plage étendue à <span class="nowrap">0..0x1FFFFF</span>.</li> </ul> <p>Cependant, en pratique ce n’est souvent pas le cas :</p> <ul> <li>Certaines mises en œuvre, telles que celle de <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Gawk?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Gawk">gawk</a>, ne permettent pas aux plages de valeurs de couvrir plusieurs blocs Unicode. Une plage de valeurs telle que <span class="nowrap">[0x61..0x7F]</span> est valide puisque les deux bornes tombent à l’intérieur du même bloc <i>Basic Latin</i>, comme <span class="nowrap">0x530..0x560</span> qui tombe dans le bloc arménien, mais une plage telle que <span class="nowrap">[0x61..0x532]</span> est invalide puisqu’elle est à cheval sur plusieurs blocs Unicode. Cette restriction s’avère très gênante car de nombreuses langues nécessitent des caractères appartenant à des blocs différents, la définition même des blocs étant arbitraire et provenant seulement du processus historique d’allocation et d’évolution de la norme ISO/IEC 10646 (et en conséquence aussi, des évolutions du standard Unicode). Une telle restriction devrait être à terme levée par une amélioration de l’implémentation.</li> <li>D’autres moteurs tels que celui de l’éditeur <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Vim?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Vim">Vim</a>, permettent le chevauchement de blocs mais limitent le nombre de caractères d’une plage à 128, ce qui est encore plus pénalisant car cela ne permet pas de traiter directement certaines écritures, où il faudrait lister un nombre considérable de sous-plages, avec des conséquences importantes sur les performances. Là aussi, des améliorations sont attendues dans l’implémentation pour lever ces restrictions.</li> </ul> <p>Un autre domaine dans lequel des variations existent est l’interprétation des indicateurs d’insensibilité à la casse.</p> <ul> <li>De tels indicateurs n’affectent que les caractères ASCII ; d’autres affectent tous les caractères (et prennent en compte la correspondance de casse soit caractère par caractère dans les implémentations les plus simples, soit au niveau du texte entier dans les implémentations respectant les contraintes de langues, ceci pouvant utiliser les correspondances d’un sous-ensemble d’une version donnée d’Unicode, d’autres pouvant utiliser toutes les correspondances de n’importe quelle version d’Unicode, éventuellement précisable au sein même de l’expression régulière).</li> <li>Certains moteurs ont deux indicateurs différents, l’un pour ASCII, l’autre pour Unicode.</li> <li>Les caractères exacts qui appartiennent aux classes POSIX varient également.</li> </ul> <p>Une autre réponse à Unicode a été l’introduction des classes de caractères pour les blocs Unicode et les propriétés générales des caractères Unicode:</p> <ul> <li>En <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Perl_(langage)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Perl (langage)">Perl</a> et dans la bibliothèque <code>java.util.regex</code> de <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Java_(technologie)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Java (technologie)">Java</a>, les classes de la forme <code>\p{<i>InX</i>}</code> valident les caractères du bloc <i>X</i> et <code>\P{<i>InX</i>}</code> valide le complément. Par exemple, <code>\p{Arabic}</code> valide n’importe quel caractère de l’écriture arabe (dans l’un quelconque des blocs normalisés d’Unicode/ISO/IEC 10646 où de tels caractères sont présents).</li> <li>Similairement, <code>\p{<i>X</i>}</code> valide n’importe quel caractère ayant la propriété de catégorie générale de caractère <i>X</i> et <code>\P{<i>X</i>}</code> le complément. Par exemple, <code>\p{Lu}</code> valide n’importe quelle lettre capitale (<i>upper-case letter</i>).</li> <li>D’autres propriétés que la catégorie générale peuvent être désignées avec la notation <code>\p{<i>prop</i>=<i>valeur</i>}</code> et son complément <code>\P{<i>prop</i>=<i>valeur</i>}</code>, où <i>prop</i> est le code d’une propriété de caractères, et <i>valeur</i> sa valeur attribuée à chaque caractère.</li> <li>Enfin des extensions ont été proposées pour utiliser un autre opérateur que la seule égalité (ou différence) de valeur de propriété, en utilisant une syntaxe d’expression régulière ou une simple alternation pour la <i>valeur</i>.</li> </ul> <p>Notes :</p> <ul> <li>Certaines propriétés de caractères sont normatives et ne devraient pas dépendre de la version utilisée, c’est le cas des propriétés définies dans ISO/IEC 10646 : le nom normalisé du caractère, le point de code, le nom du bloc où le caractère est codé.</li> <li>D’autres propriétés sont standards et correspondent à des propriétés normatives du standard Unicode : ce sont essentiellement les propriétés de base définies dans la table principale de caractères Unicode. En principe, elles sont invariables. C’est le cas des correspondances simples de casse (caractère par caractère), ou de la catégorie générale du caractère. Dans bien des cas, ces propriétés ne sont pas adaptées à toutes les langues.</li> <li>D’autres propriétés sont informatives, et peuvent faire l’objet de révision d’une version d’Unicode à l’autre : ce sont essentiellement les propriétés définies dans les tables supplémentaires d’Unicode. En particulier elles sont adaptables en fonction de la langue utilisée et désignent par exemple les propriétés de correspondances de casse étendues (traitant le texte dans sa globalité), ou les propriétés d’ordonnancement (<span class="lang-en" lang="en"><i>collation</i></span>).</li> <li>Cependant certaines de ces dernières tables ont acquis le statut de standard (en étant intégrées dans des annexes standards du standard Unicode) et sont même utilisées dans la définition de certaines normes, ou bien d’autres propriétés historiques sont encore maintenues mais d’usage non recommandé. Consulter le standard Unicode pour connaître le statut actuel de ces propriétés.</li> </ul> </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="Implémentations_et_complexité_algorithmique"><span id="Impl.C3.A9mentations_et_complexit.C3.A9_algorithmique"></span>Implémentations et complexité algorithmique</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=23&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Implémentations et complexité algorithmique" 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>modifier</span> </a> </span> </div> <section class="mf-section-9 collapsible-block" id="mf-section-9"> <p>Il existe au moins trois familles d'<a href="https://fr-m-wikipedia-org.translate.goog/wiki/Algorithme?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Algorithme">algorithmes</a> qui déterminent si une chaîne de caractères correspond à une expression régulière.</p> <ul> <li>La plus ancienne approche, dite explicite, repose sur la traduction de l'expression régulière en un <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Automate_fini_d%C3%A9terministe?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Automate fini déterministe">automate fini déterministe</a> (AFD). La construction d'un tel automate pour une expression régulière de taille <i>m</i> a une <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Th%C3%A9orie_de_la_complexit%C3%A9_(informatique_th%C3%A9orique)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Théorie de la complexité (informatique théorique)">complexité</a> en taille et en mémoire en <i><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Comparaison_asymptotique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Comparaison asymptotique">O</a>(2<sup>m</sup>)</i> mais peut être exécutée sur une chaîne de taille <i>n</i> en un temps <i>O(n)</i>.</li> </ul> <ul> <li>Une approche alternative, dite implicite, consiste à simuler un <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Automate_fini_non_d%C3%A9terministe?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Automate fini non déterministe">automate fini non déterministe</a> en construisant chaque AFD à la volée et en s'en débarrassant à l'étape suivante. Cette approche évite la complexité exponentielle de l'approche précédente, mais le temps d'exécution augmente en <i>O(mn)</i>. Ces algorithmes sont rapides mais certaines fonctionnalités telles que la recapture de sous-chaînes et la quantification non gourmande sont difficiles à mettre en oeuvre<sup id="cite_ref-21" class="reference"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_note-21"><span class="cite_crochet">[</span>19<span class="cite_crochet">]</span></a></sup>.</li> </ul> <ul> <li>La troisième approche consiste à confronter le motif à la chaîne de caractères par <a href="https://fr-m-wikipedia-org.translate.goog/wiki/S%C3%A9paration_et_%C3%A9valuation?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Séparation et évaluation">séparation et évaluation</a> ("<i>backtracking</i>"). Sa complexité algorithmique est exponentielle dans le pire des cas, par exemple avec des motifs tels que <code>(a|aa)*b</code>, mais donne de bons résultats en pratique. Elle est plus flexible et autorise un plus grand pouvoir expressif, par exemple en simplifiant la recapture de sous-chaînes.</li> </ul> <p>Certaines <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Impl%C3%A9mentation?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Implémentation">implémentations</a> tentent de combiner les qualités des différentes approches, en commençant la recherche avec un AFD, puis en utilisant la séparation et évaluation lorsque c'est nécessaire.</p> </section> <div class="mw-heading mw-heading2 section-heading" onclick="mfTempOpenSection(10)"> <span class="indicator mf-icon mf-icon-expand mf-icon--small"></span> <h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=24&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Notes et références" 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>modifier</span> </a> </span> </div> <section class="mf-section-10 collapsible-block" id="mf-section-10"> <div class="mw-heading mw-heading3"> <h3 id="Notes">Notes</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=25&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Notes" 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>modifier</span> </a> </span> </div> <div class="references-small decimal" style=""> <div class="mw-references-wrap"> <ol class="references"> <li id="cite_note-2"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-2">↑</a> </span><span class="reference-text">D'après la <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://web.archive.org/web/20021120170835/http://www.cio-dpi.gc.ca/its-nit/standards/tbits02/spec02a_f.asp">traduction</a> de la norme ISO/IEC 9075:1989 par le <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Conseil_du_tr%C3%A9sor_(Canada)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Conseil du trésor (Canada)">Conseil du Trésor du Canada</a> et qui est <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://www.btb.termiumplus.gc.ca/tpv2alpha/alpha-fra.html?lang%3Dfra%26i%3D1%26srchtxt%3Dregular%2Bexpression%26index%3Dalt%26codom2nd_wet%3D1%23resultrecs">recommandée</a> par le <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Bureau_de_la_traduction?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Bureau de la traduction">Bureau de la traduction du gouvernement du Canada</a>.</span></li> <li id="cite_note-5"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-5">↑</a> </span><span class="reference-text">P. 46, Kleene introduit la notion d’<i>événement régulier</i> (regular event), pour ce qui a été appelé plus tard <i>ensemble régulier</i> ou <i>langage régulier</i> et demande qu'on lui suggère un terme plus descriptif ! La définition des événements réguliers est p. 48.</span></li> </ol> </div> </div> <div class="mw-heading mw-heading3"> <h3 id="Références"><span id="R.C3.A9f.C3.A9rences"></span>Références</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=26&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Références" 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>modifier</span> </a> </span> </div> <div class="references-small decimal" style=""> <div class="mw-references-wrap mw-references-columns"> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-1">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://vitrinelinguistique.oqlf.gouv.qc.ca/redirection/ficheuid/8359703"><cite style="font-style:normal;">expression rationnelle</cite></a> », <i><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Grand_Dictionnaire_terminologique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Grand Dictionnaire terminologique">Grand Dictionnaire terminologique</a></i>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Office_qu%C3%A9b%C3%A9cois_de_la_langue_fran%C3%A7aise?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Office québécois de la langue française">Office québécois de la langue française</a> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2019-08-05" data-sort-value="2019-08-05">5 août 2019</time>)</small></span>.</span></li> <li id="cite_note-3"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-3">↑</a> </span><span class="reference-text">François Yvon et Akim Demaille avec la participation de Pierre Senellart, <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://www.lrde.epita.fr/~akim/thl/lecture-notes/theorie-des-langages-1.pdf"><i>Théorie des langages Notes de Cours</i></a></span></li> <li id="cite_note-4"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-4">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Cole_Kleene1956"><span class="ouvrage" id="Stephen_Cole_Kleene1956">Stephen Cole Kleene, <cite style="font-style:normal">« Representation of events in nerve nets and finite automata. »</cite>, dans <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Claude_Elwood_Shannon?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Claude Elwood Shannon">Claude Elwood Shannon</a> and John McCarthy, <cite class="italique">Automata Studies</cite>, <abbr class="abbr" title="volume">vol.</abbr> 34, Princeton, NJ, Princeton University Press, <abbr class="abbr" title="collection">coll.</abbr> « Annals of Mathematics Studies », <time>1956</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://www.dtic.mil/get-tr-doc/pdf?AD%3DADA596138">lire en ligne</a>)</small>, <abbr class="abbr" title="page(s)">p.</abbr> 3 -- 41<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.btitle=Automata+Studies&rft.atitle=Representation+of+events+in+nerve+nets+and+finite+automata.&rft.place=Princeton%2C+NJ&rft.pub=Princeton+University+Press&rft.au=Stephen+Cole+Kleene&rft.date=1956&rft.volume=34&rft.pages=3+--+41&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AExpression+r%C3%A9guli%C3%A8re"></span></span></span>.</span></li> <li id="cite_note-AHU-6"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-AHU_6-0">↑</a> </span><span class="reference-text"><span class="ouvrage" id="AhoHopcroftUllman1974"><span class="ouvrage" id="A._AhoJ._HopcroftJ._Ullman1974"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Alfred_V._Aho?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Alfred V. Aho">A. Aho</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/John_E._Hopcroft?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="John E. Hopcroft">J. Hopcroft</a> et <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Jeffrey_D._Ullman?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Jeffrey D. Ullman">J. Ullman</a>, <cite class="italique" lang="en">The Design and Analysis of Computer Algorithms</cite>, Addison-Wesley, <time>1974</time> <small style="line-height:1em;">(<a href="https://fr-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/0-201-00029-6?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Spécial:Ouvrages de référence/0-201-00029-6"><span class="nowrap">0-201-00029-6</span></a>)</small><span class="lang-en" lang="en">, « Pattern-matching algorithms (Bibliographic notes) »</span><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=The+Design+and+Analysis+of+Computer+Algorithms&rft.pub=Addison-Wesley&rft.aulast=Aho&rft.aufirst=A.&rft.au=J.+Hopcroft&rft.au=J.+Ullman&rft.date=1974&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AExpression+r%C3%A9guli%C3%A8re"></span></span></span></span></li> <li id="cite_note-7"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-7">↑</a> </span><span class="reference-text">Dans leur article fondateur <i>Finite Automata and Their Decision Problems</i>, Rabin, Michael O. ; Scott, Dana S. (1959). IBM Journal of Research and Development, les auteurs, dans leur définition 3, appellent ensembles définissables de bandes (<i>definable sets of tapes</i>) ce qui a été appelé plus tard <i>langages réguliers</i> ou <i>langages rationnels</i>, suivant les terminologies adoptées. </span></li> <li id="cite_note-8"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-8">↑</a> </span><span class="reference-text">Voir <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://perldoc.perl.org/perlunicode.html">perlunicode</a>, Perl Programming Documentation <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr></span></li> <li id="cite_note-9"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-9">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://www.regular-expressions.info/unicode.html">Unicode characters and properties</a>, Regex tutorial</span></li> <li id="cite_note-10"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-10">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://www.fileformat.info/info/unicode/category/index.htm">Unicode Character Categories</a></span></li> <li id="cite_note-11"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-11">↑</a> </span><span class="reference-text">Source : <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://dev.mysql.com/doc/refman/5.6/en/regexp.html">Regular Expressions</a>, MySQL 5.6 Reference Manual <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr></span></li> <li id="cite_note-12"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-12">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://dev.mysql.com/doc/refman/5.0/fr/regexp.html">MySQL AB :: MySQL 5.0 Reference Manual :: F expressions régulières MySQL</a>.</span></li> <li id="cite_note-13"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-13">↑</a> </span><span class="reference-text">Source : <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://www.postgresql.org/docs/9.3/static/functions-matching.html%23POSIX-SYNTAX-DETAILS">Regular Expression Details</a>, PostgreSQL 8.4+ Reference Manual <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr></span></li> <li id="cite_note-14"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-14">↑</a> </span><span class="reference-text">Source : <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://garyhouston.github.io/regex/">regex - Henry Spencer's regular expression libraries</a> <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr></span></li> <li id="cite_note-wikitcl-15"><span class="mw-cite-backlink noprint">↑ <sup><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-wikitcl_15-0">a</a> et <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-wikitcl_15-1">b</a></sup> </span><span class="reference-text">Source : <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://wiki.tcl.tk/396">Regular expressions</a>, Wiki Tcl <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr></span></li> <li id="cite_note-16"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-16">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://perldoc.perl.org/perl5100delta.html"><cite style="font-style:normal;">perl5100delta - perldoc.perl.org</cite></a> », sur <span class="italique">perldoc.perl.org</span></span></span></li> <li id="cite_note-17"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-17">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://php.net/manual/fr/ref.regex.php">PHP: Regex POSIX - Manual</a>.</span></li> <li id="cite_note-18"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-18">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://www.computerworld.com.au/index.php/id;347504672;pp;4;fp;2;fpid;76768">Computerworld - PHP Developer’s Guide | Pattern matching with PHP</a>.</span></li> <li id="cite_note-19"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-19">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://php.net/manual/fr/ref.pcre.php">PHP: PCRE - Manual</a>.</span></li> <li id="cite_note-20"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-20">↑</a> </span><span class="reference-text">D’après : <a rel="nofollow" class="external free" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://www.icu-project.org/userguide/regexp.html">http://www.icu-project.org/userguide/regexp.html</a>.</span></li> <li id="cite_note-21"><span class="mw-cite-backlink noprint"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Expressions_r%C3%A9guli%C3%A8res?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB#cite_ref-21">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://swtch.com/~rsc/regexp/regexp1.html">Regular Expression Matching Can Be Simple and Fast</a>, Cox, Russ (2007). </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="Voir_aussi">Voir aussi</h2><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=27&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Voir aussi" 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>modifier</span> </a> </span> </div> <section class="mf-section-11 collapsible-block" id="mf-section-11"> <div class="mw-heading mw-heading3"> <h3 id="Articles_connexes">Articles connexes</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=28&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Articles connexes" 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>modifier</span> </a> </span> </div> <ul> <li><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Filtrage_par_motif?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Filtrage par motif">Filtrage par motif</a></li> <li><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Alg%C3%A8bre_de_Kleene?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Algèbre de Kleene">Algèbre de Kleene</a></li> </ul> <div class="mw-heading mw-heading3"> <h3 id="Bibliographie">Bibliographie</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=29&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Bibliographie" 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>modifier</span> </a> </span> </div> <ul> <li><span class="ouvrage" id="Cole_Kleene1956"><span class="ouvrage" id="Stephen_Cole_Kleene1956">Stephen Cole Kleene, <cite style="font-style:normal">« Representation of events in nerve nets and finite automata. »</cite>, dans Claude Elwood Shannon and J. McCarthy, <cite class="italique">Automata Studies</cite>, <abbr class="abbr" title="volume">vol.</abbr> 34, Princeton, NJ, Princeton University Press, <abbr class="abbr" title="collection">coll.</abbr> « Annals of Mathematics Studies », <time>1956</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://www.dtic.mil/get-tr-doc/pdf?AD%3DADA596138">lire en ligne</a>)</small>, <abbr class="abbr" title="page(s)">p.</abbr> 3 -- 41<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.btitle=Automata+Studies&rft.atitle=Representation+of+events+in+nerve+nets+and+finite+automata.&rft.place=Princeton%2C+NJ&rft.pub=Princeton+University+Press&rft.au=Stephen+Cole+Kleene&rft.date=1956&rft.volume=34&rft.pages=3+--+41&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AExpression+r%C3%A9guli%C3%A8re"></span></span></span></li> <li><span class="ouvrage" id="1959"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Michael_O._Rabin?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" class="mw-redirect" title="Michael O. Rabin">Michael O. Rabin</a>, <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Dana_S._Scott?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Dana S. Scott">Dana S. Scott</a>, « <cite style="font-style:normal">Finite automata and their decision problems</cite> », <i>IBM journal of research and development</i>, <time>1959</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://www.researchgate.net/profile/Dana_Scott3/publication/230876408_Finite_Automata_and_Their_Decision_Problems/links/582783f808ae950ace6cd752/Finite-Automata-and-Their-Decision-Problems.pdf">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Finite+automata+and+their+decision+problems&rft.jtitle=IBM+journal+of+research+and+development&rft.date=1959&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AExpression+r%C3%A9guli%C3%A8re"></span></span></li> <li><span class="ouvrage" id="Desgraupes2001"><span class="ouvrage" id="Bernard_Desgraupes2001">Bernard <span class="nom_auteur">Desgraupes</span>, <cite class="italique">Introduction aux expressions régulières</cite>, Paris, Vuibert, <time class="nowrap" datetime="2001-09" data-sort-value="2001-09">septembre 2001</time>, 248 <abbr class="abbr" title="pages">p.</abbr>, broché <small style="line-height:1em;">(<a href="https://fr-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/2-7117-8680-3?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Spécial:Ouvrages de référence/2-7117-8680-3"><span class="nowrap">2-7117-8680-3</span></a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Introduction+aux+expressions+r%C3%A9guli%C3%A8res&rft.place=Paris&rft.pub=Vuibert&rft.aulast=Desgraupes&rft.aufirst=Bernard&rft.date=2001-09&rft.tpages=248&rft.isbn=2-7117-8680-3&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AExpression+r%C3%A9guli%C3%A8re"></span></span></span>.</li> <li><span class="ouvrage" id="Friedl2001"><span class="ouvrage" id="Jeffrey_E._F._Friedl2001">Jeffrey E. F. <span class="nom_auteur">Friedl</span> (<abbr class="abbr" title="traduction">trad.</abbr> de l'anglais par Laurent Dami), <cite class="italique">Maîtrise des expressions régulières</cite> [« <span class="lang-en" lang="en">Mastering regular expressions</span> »], Paris, O'Reilly, <time class="nowrap" datetime="2001-04" data-sort-value="2001-04">avril 2001</time> (<abbr class="abbr" title="réimpression">réimpr.</abbr> 2003), 337 <abbr class="abbr" title="pages">p.</abbr>, broché <small style="line-height:1em;">(<a href="https://fr-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/2-84177-126-1?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Spécial:Ouvrages de référence/2-84177-126-1"><span class="nowrap">2-84177-126-1</span></a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Ma%C3%AEtrise+des+expressions+r%C3%A9guli%C3%A8res&rft.place=Paris&rft.pub=O%27Reilly&rft.aulast=Friedl&rft.aufirst=Jeffrey+E.+F.&rft.date=2001-04&rft.tpages=337&rft.isbn=2-84177-126-1&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AExpression+r%C3%A9guli%C3%A8re"></span></span></span>.</li> <li><span class="ouvrage" id="Bornet2015"><span class="ouvrage" id="Martial_Bornet2015">Martial <span class="nom_auteur">Bornet</span>, <cite class="italique">Expressions Régulières, Syntaxe et mise en œuvre</cite>, Paris, ENI, <time class="nowrap" datetime="2015-09" data-sort-value="2015-09">septembre 2015</time>, 465 <abbr class="abbr" title="pages">p.</abbr>, broché <small style="line-height:1em;">(<a href="https://fr-m-wikipedia-org.translate.goog/wiki/International_Standard_Book_Number?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="International Standard Book Number">ISBN</a> <a href="https://fr-m-wikipedia-org.translate.goog/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/978-2-7460-9806-0?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Spécial:Ouvrages de référence/978-2-7460-9806-0"><span class="nowrap">978-2-7460-9806-0</span></a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Expressions+R%C3%A9guli%C3%A8res%2C+Syntaxe+et+mise+en+%C5%93uvre&rft.place=Paris&rft.pub=ENI&rft.aulast=Bornet&rft.aufirst=Martial&rft.date=2015-09&rft.tpages=465&rft.isbn=978-2-7460-9806-0&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AExpression+r%C3%A9guli%C3%A8re"></span></span></span>.</li> </ul> <div class="mw-heading mw-heading3"> <h3 id="Liens_externes">Liens externes</h3><span class="mw-editsection"> <a role="button" href="https://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=edit&section=30&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Modifier la section : Liens externes" 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>modifier</span> </a> </span> </div> <style data-mw-deduplicate="TemplateStyles:r194021218">.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}</style> <div class="autres-projets boite-grise boite-a-droite noprint js-interprojets"> <p class="titre">Sur les autres projets Wikimedia :</p> <ul class="noarchive plainlinks"> <li class="commons"><a class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://commons.wikimedia.org/wiki/Category:Regex?uselang%3Dfr">Expression régulière</a>, sur <span class="project">Wikimedia Commons</span></li> <li class="wiktionary"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://fr.wiktionary.org/wiki/expression_r%25C3%25A9guli%25C3%25A8re" class="extiw" title="wikt:expression régulière">expression régulière</a>, <span class="nowrap">sur le <span class="project">Wiktionnaire</span></span></li> <li class="wiktionary"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://fr.wiktionary.org/wiki/expression_rationnelle" class="extiw" title="wikt:expression rationnelle">expression rationnelle</a>, <span class="nowrap">sur le <span class="project">Wiktionnaire</span></span></li> <li class="wikiversity"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://fr.wikiversity.org/wiki/Cat%25C3%25A9gorie:Expressions_rationnelles" class="extiw" title="v:Catégorie:Expressions rationnelles">Expression régulière</a>, <span class="nowrap">sur <span class="project">Wikiversity</span></span></li> <li class="wikibooks"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://fr.wikibooks.org/wiki/Cat%25C3%25A9gorie:Expressions_rationnelles" class="extiw" title="b:Catégorie:Expressions rationnelles">Expression régulière</a>, <span class="nowrap">sur <span class="project">Wikibooks</span></span></li> </ul> </div> <p class="mw-empty-elt"></p> <ul> <li class="mw-empty-elt"></li> <li class="mw-empty-elt"></li> <li> <div class="liste-horizontale"> <span class="wd_identifiers">Notice dans un dictionnaire ou une encyclopédie généraliste<span class="noprint wikidata-linkback skin-invert"><span class="mw-valign-baseline noviewer" typeof="mw:File"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://www.wikidata.org/wiki/Q185612?uselang%3Dfr%23identifiers" title="Voir et modifier les données sur Wikidata"> <noscript> <img alt="Voir et modifier les données sur Wikidata" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/10px-Blue_pencil.svg.png" decoding="async" width="10" height="10" class="mw-file-element" data-file-width="600" data-file-height="600"> </noscript><span class="lazy-image-placeholder" style="width: 10px;height: 10px;" data-src="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/10px-Blue_pencil.svg.png" data-alt="Voir et modifier les données sur Wikidata" data-width="10" data-height="10" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/15px-Blue_pencil.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/20px-Blue_pencil.svg.png 2x" data-class="mw-file-element"> </span></a></span></span></span> : <ul> <li><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://snl.no/regul%25C3%25A6re_uttrykk"><i>Store norske leksikon</i></a></li> </ul> </div></li> <li> <div class="liste-horizontale"> <span class="wd_identifiers"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Autorit%C3%A9_(sciences_de_l%27information)?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Autorité (sciences de l'information)">Notices d'autorité</a><span class="noprint wikidata-linkback skin-invert"><span class="mw-valign-baseline noviewer" typeof="mw:File"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://www.wikidata.org/wiki/Q185612?uselang%3Dfr%23identifiers" title="Voir et modifier les données sur Wikidata"> <noscript> <img alt="Voir et modifier les données sur Wikidata" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/10px-Blue_pencil.svg.png" decoding="async" width="10" height="10" class="mw-file-element" data-file-width="600" data-file-height="600"> </noscript><span class="lazy-image-placeholder" style="width: 10px;height: 10px;" data-src="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/10px-Blue_pencil.svg.png" data-alt="Voir et modifier les données sur Wikidata" data-width="10" data-height="10" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/15px-Blue_pencil.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/20px-Blue_pencil.svg.png 2x" data-class="mw-file-element"> </span></a></span></span></span> : <ul> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://catalogue.bnf.fr/ark:/12148/cb14626171d">BnF</a></span> (<span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://data.bnf.fr/ark:/12148/cb14626171d">données</a></span>)</li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://id.loc.gov/authorities/sh2018002310">LCCN</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://d-nb.info/gnd/4506116-6">GND</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://id.ndl.go.jp/auth/ndlna/01121341">Japon</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://olduli.nli.org.il/F/?func%3Dfind-b%26local_base%3DNLX10%26find_code%3DUID%26request%3D987012575112805171">Israël</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=http://aut.nkp.cz/ph594494">Tchéquie</a></span></li> </ul> </div></li> </ul> <div class="navbox-container" style="clear:both;"> </div> <ul id="bandeau-portail" class="bandeau-portail"> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer skin-invert-image" typeof="mw:File"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Portail:Informatique_th%C3%A9orique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Portail de l'informatique théorique"> <noscript> <img alt="icône décorative" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Max-cut.svg/30px-Max-cut.svg.png" decoding="async" width="30" height="24" class="mw-file-element" data-file-width="200" data-file-height="160"> </noscript><span class="lazy-image-placeholder" style="width: 30px;height: 24px;" data-src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Max-cut.svg/30px-Max-cut.svg.png" data-alt="icône décorative" data-width="30" data-height="24" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Max-cut.svg/45px-Max-cut.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Max-cut.svg/60px-Max-cut.svg.png 2x" data-class="mw-file-element"> </span></a></span></span> <span class="bandeau-portail-texte"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Portail:Informatique_th%C3%A9orique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Portail:Informatique théorique">Portail de l'informatique théorique</a></span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Portail:Programmation_informatique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Portail de la programmation informatique"> <noscript> <img alt="icône décorative" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/24px-Circle-icons-dev.svg.png" decoding="async" width="24" height="24" class="mw-file-element" data-file-width="512" data-file-height="512"> </noscript><span class="lazy-image-placeholder" style="width: 24px;height: 24px;" data-src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/24px-Circle-icons-dev.svg.png" data-alt="icône décorative" data-width="24" data-height="24" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/36px-Circle-icons-dev.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/48px-Circle-icons-dev.svg.png 2x" data-class="mw-file-element"> </span></a></span></span> <span class="bandeau-portail-texte"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Portail:Programmation_informatique?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB" title="Portail:Programmation informatique">Portail de la programmation informatique</a></span> </span></li> </ul><!-- NewPP limit report Parsed by mw‐api‐int.codfw.main‐6fdd9f9b88‐lhqmb Cached time: 20241129101748 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.582 seconds Real time usage: 0.713 seconds Preprocessor visited node count: 3306/1000000 Post‐expand include size: 113603/2097152 bytes Template argument size: 18764/2097152 bytes Highest expansion depth: 14/100 Expensive parser function count: 2/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 15604/5000000 bytes Lua time usage: 0.332/10.000 seconds Lua memory usage: 8421461/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 583.822 1 -total 54.23% 316.627 1 Modèle:Liens 12.06% 70.381 2 Modèle:Références 5.27% 30.772 1 Modèle:GDT 4.84% 28.229 3 Modèle:Méta_bandeau 4.77% 27.834 1 Modèle:Voir_homonymes 4.68% 27.323 2 Modèle:Lien_web 4.50% 26.252 1 Modèle:Méta_bandeau_de_note 4.23% 24.678 1 Modèle:Autres_projets 3.91% 22.845 1 Modèle:Portail --> <!-- Saved in parser cache with key frwiki:pcache:idhash:1063-0!canonical and timestamp 20241129101748 and revision id 214648242. Rendering was triggered because: api-parse --> </section> </div><!-- MobileFormatter took 0.020 seconds --><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --> <noscript> <img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&useformat=mobile" alt="" width="1" height="1" style="border: none; position: absolute;"> </noscript> <div class="printfooter" data-nosnippet=""> Ce document provient de « <a dir="ltr" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://fr.wikipedia.org/w/index.php?title%3DExpression_r%C3%A9guli%C3%A8re%26oldid%3D214648242">https://fr.wikipedia.org/w/index.php?title=Expression_régulière&oldid=214648242</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://fr-m-wikipedia-org.translate.goog/w/index.php?title=Expression_r%C3%A9guli%C3%A8re&action=history&_x_tr_sl=auto&_x_tr_tl=en&_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="Verbex" data-user-gender="male" data-timestamp="1714321237"> <span>Dernière modification le 28 avril 2024, à 17:20</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>Langues</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&tl=en&hl=en-GB&u=https://af.wikipedia.org/wiki/Regul%25C3%25AAre_uitdrukking" title="Regulêre uitdrukking – afrikaans" lang="af" hreflang="af" data-title="Regulêre uitdrukking" data-language-autonym="Afrikaans" data-language-local-name="afrikaans" 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&tl=en&hl=en-GB&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="تعبير نمطي – arabe" lang="ar" hreflang="ar" data-title="تعبير نمطي" data-language-autonym="العربية" data-language-local-name="arabe" 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&tl=en&hl=en-GB&u=https://az.wikipedia.org/wiki/Requlyar_ifad%25C9%2599" title="Requlyar ifadə – azerbaïdjanais" lang="az" hreflang="az" data-title="Requlyar ifadə" data-language-autonym="Azərbaycanca" data-language-local-name="azerbaïdjanais" 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&tl=en&hl=en-GB&u=https://bar.wikipedia.org/wiki/Regex" title="Regex – bavarois" lang="bar" hreflang="bar" data-title="Regex" data-language-autonym="Boarisch" data-language-local-name="bavarois" 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&tl=en&hl=en-GB&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="Регулярен израз – bulgare" lang="bg" hreflang="bg" data-title="Регулярен израз" data-language-autonym="Български" data-language-local-name="bulgare" 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&tl=en&hl=en-GB&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="রেগুলার এক্সপ্রেশন – bengali" lang="bn" hreflang="bn" data-title="রেগুলার এক্সপ্রেশন" data-language-autonym="বাংলা" data-language-local-name="bengali" 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&tl=en&hl=en-GB&u=https://ca.wikipedia.org/wiki/Expressi%25C3%25B3_regular" title="Expressió regular – catalan" lang="ca" hreflang="ca" data-title="Expressió regular" data-language-autonym="Català" data-language-local-name="catalan" 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&tl=en&hl=en-GB&u=https://cs.wikipedia.org/wiki/Regul%25C3%25A1rn%25C3%25AD_v%25C3%25BDraz" title="Regulární výraz – tchèque" lang="cs" hreflang="cs" data-title="Regulární výraz" data-language-autonym="Čeština" data-language-local-name="tchèque" 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&tl=en&hl=en-GB&u=https://da.wikipedia.org/wiki/Regul%25C3%25A6rt_udtryk" title="Regulært udtryk – danois" lang="da" hreflang="da" data-title="Regulært udtryk" data-language-autonym="Dansk" data-language-local-name="danois" 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&tl=en&hl=en-GB&u=https://de.wikipedia.org/wiki/Regul%25C3%25A4rer_Ausdruck" title="Regulärer Ausdruck – allemand" lang="de" hreflang="de" data-title="Regulärer Ausdruck" data-language-autonym="Deutsch" data-language-local-name="allemand" 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&tl=en&hl=en-GB&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="Κανονική έκφραση – grec" lang="el" hreflang="el" data-title="Κανονική έκφραση" data-language-autonym="Ελληνικά" data-language-local-name="grec" 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&tl=en&hl=en-GB&u=https://en.wikipedia.org/wiki/Regular_expression" title="Regular expression – anglais" lang="en" hreflang="en" data-title="Regular expression" data-language-autonym="English" data-language-local-name="anglais" 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&tl=en&hl=en-GB&u=https://eo.wikipedia.org/wiki/Regula_esprimo" title="Regula esprimo – espéranto" lang="eo" hreflang="eo" data-title="Regula esprimo" data-language-autonym="Esperanto" data-language-local-name="espéranto" 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&tl=en&hl=en-GB&u=https://es.wikipedia.org/wiki/Expresi%25C3%25B3n_regular" title="Expresión regular – espagnol" lang="es" hreflang="es" data-title="Expresión regular" data-language-autonym="Español" data-language-local-name="espagnol" 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&tl=en&hl=en-GB&u=https://et.wikipedia.org/wiki/Regulaaravaldis" title="Regulaaravaldis – estonien" lang="et" hreflang="et" data-title="Regulaaravaldis" data-language-autonym="Eesti" data-language-local-name="estonien" 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&tl=en&hl=en-GB&u=https://eu.wikipedia.org/wiki/Adierazpen_erregular" title="Adierazpen erregular – basque" lang="eu" hreflang="eu" data-title="Adierazpen erregular" data-language-autonym="Euskara" data-language-local-name="basque" 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&tl=en&hl=en-GB&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="عبارت باقاعده – persan" lang="fa" hreflang="fa" data-title="عبارت باقاعده" data-language-autonym="فارسی" data-language-local-name="persan" 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&tl=en&hl=en-GB&u=https://fi.wikipedia.org/wiki/S%25C3%25A4%25C3%25A4nn%25C3%25B6llinen_lauseke" title="Säännöllinen lauseke – finnois" lang="fi" hreflang="fi" data-title="Säännöllinen lauseke" data-language-autonym="Suomi" data-language-local-name="finnois" class="interlanguage-link-target"><span>Suomi</span></a></li> <li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://gl.wikipedia.org/wiki/Expresi%25C3%25B3n_regular" title="Expresión regular – galicien" lang="gl" hreflang="gl" data-title="Expresión regular" data-language-autonym="Galego" data-language-local-name="galicien" 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&tl=en&hl=en-GB&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="ביטוי רגולרי – hébreu" lang="he" hreflang="he" data-title="ביטוי רגולרי" data-language-autonym="עברית" data-language-local-name="hébreu" 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&tl=en&hl=en-GB&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&tl=en&hl=en-GB&u=https://hr.wikipedia.org/wiki/Regularni_izraz" title="Regularni izraz – croate" lang="hr" hreflang="hr" data-title="Regularni izraz" data-language-autonym="Hrvatski" data-language-local-name="croate" 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&tl=en&hl=en-GB&u=https://hu.wikipedia.org/wiki/Regul%25C3%25A1ris_kifejez%25C3%25A9s" title="Reguláris kifejezés – hongrois" lang="hu" hreflang="hu" data-title="Reguláris kifejezés" data-language-autonym="Magyar" data-language-local-name="hongrois" 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&tl=en&hl=en-GB&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énien" lang="hy" hreflang="hy" data-title="Կանոնավոր արտահայտություններ" data-language-autonym="Հայերեն" data-language-local-name="arménien" 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&tl=en&hl=en-GB&u=https://id.wikipedia.org/wiki/Ekspresi_reguler" title="Ekspresi reguler – indonésien" lang="id" hreflang="id" data-title="Ekspresi reguler" data-language-autonym="Bahasa Indonesia" data-language-local-name="indonésien" 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&tl=en&hl=en-GB&u=https://is.wikipedia.org/wiki/Regluleg_seg%25C3%25B0" title="Regluleg segð – islandais" lang="is" hreflang="is" data-title="Regluleg segð" data-language-autonym="Íslenska" data-language-local-name="islandais" 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&tl=en&hl=en-GB&u=https://it.wikipedia.org/wiki/Espressione_regolare" title="Espressione regolare – italien" lang="it" hreflang="it" data-title="Espressione regolare" data-language-autonym="Italiano" data-language-local-name="italien" 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&tl=en&hl=en-GB&u=https://ja.wikipedia.org/wiki/%25E6%25AD%25A3%25E8%25A6%258F%25E8%25A1%25A8%25E7%258F%25BE" title="正規表現 – japonais" lang="ja" hreflang="ja" data-title="正規表現" data-language-autonym="日本語" data-language-local-name="japonais" 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&tl=en&hl=en-GB&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="რეგულარული გამოსახულება – géorgien" lang="ka" hreflang="ka" data-title="რეგულარული გამოსახულება" data-language-autonym="ქართული" data-language-local-name="géorgien" 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&tl=en&hl=en-GB&u=https://ko.wikipedia.org/wiki/%25EC%25A0%2595%25EA%25B7%259C_%25ED%2591%259C%25ED%2598%2584%25EC%258B%259D" title="정규 표현식 – coréen" lang="ko" hreflang="ko" data-title="정규 표현식" data-language-autonym="한국어" data-language-local-name="coréen" 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&tl=en&hl=en-GB&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="Регулярдык туюнтма – kirghize" lang="ky" hreflang="ky" data-title="Регулярдык туюнтма" data-language-autonym="Кыргызча" data-language-local-name="kirghize" 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&tl=en&hl=en-GB&u=https://lv.wikipedia.org/wiki/Regul%25C4%2581r%25C4%2581_izteiksme" title="Regulārā izteiksme – letton" lang="lv" hreflang="lv" data-title="Regulārā izteiksme" data-language-autonym="Latviešu" data-language-local-name="letton" 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&tl=en&hl=en-GB&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="Регуларен израз – macédonien" lang="mk" hreflang="mk" data-title="Регуларен израз" data-language-autonym="Македонски" data-language-local-name="macédonien" 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&tl=en&hl=en-GB&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="റെഗുലർ എക്സ്പ്രഷനുകൾ – malayalam" lang="ml" hreflang="ml" data-title="റെഗുലർ എക്സ്പ്രഷനുകൾ" data-language-autonym="മലയാളം" data-language-local-name="malayalam" 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&tl=en&hl=en-GB&u=https://mwl.wikipedia.org/wiki/Spresson_Regular" title="Spresson Regular – mirandais" lang="mwl" hreflang="mwl" data-title="Spresson Regular" data-language-autonym="Mirandés" data-language-local-name="mirandais" 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&tl=en&hl=en-GB&u=https://nl.wikipedia.org/wiki/Reguliere_expressie" title="Reguliere expressie – néerlandais" lang="nl" hreflang="nl" data-title="Reguliere expressie" data-language-autonym="Nederlands" data-language-local-name="néerlandais" 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&tl=en&hl=en-GB&u=https://no.wikipedia.org/wiki/Regul%25C3%25A6rt_uttrykk" title="Regulært uttrykk – norvégien bokmål" lang="nb" hreflang="nb" data-title="Regulært uttrykk" data-language-autonym="Norsk bokmål" data-language-local-name="norvégien 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&tl=en&hl=en-GB&u=https://pl.wikipedia.org/wiki/Wyra%25C5%25BCenie_regularne" title="Wyrażenie regularne – polonais" lang="pl" hreflang="pl" data-title="Wyrażenie regularne" data-language-autonym="Polski" data-language-local-name="polonais" 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&tl=en&hl=en-GB&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-pt mw-list-item"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://pt.wikipedia.org/wiki/Express%25C3%25A3o_regular" title="Expressão regular – portugais" lang="pt" hreflang="pt" data-title="Expressão regular" data-language-autonym="Português" data-language-local-name="portugais" class="interlanguage-link-target"><span>Português</span></a></li> <li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://ro.wikipedia.org/wiki/Expresie_regulat%25C4%2583" title="Expresie regulată – roumain" lang="ro" hreflang="ro" data-title="Expresie regulată" data-language-autonym="Română" data-language-local-name="roumain" 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&tl=en&hl=en-GB&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="Регулярные выражения – russe" lang="ru" hreflang="ru" data-title="Регулярные выражения" data-language-autonym="Русский" data-language-local-name="russe" 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&tl=en&hl=en-GB&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&tl=en&hl=en-GB&u=https://sk.wikipedia.org/wiki/Regul%25C3%25A1rny_v%25C3%25BDraz" title="Regulárny výraz – slovaque" lang="sk" hreflang="sk" data-title="Regulárny výraz" data-language-autonym="Slovenčina" data-language-local-name="slovaque" 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&tl=en&hl=en-GB&u=https://sl.wikipedia.org/wiki/Regularni_izraz" title="Regularni izraz – slovène" lang="sl" hreflang="sl" data-title="Regularni izraz" data-language-autonym="Slovenščina" data-language-local-name="slovène" 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&tl=en&hl=en-GB&u=https://sq.wikipedia.org/wiki/Shprehje_e_rregullt" title="Shprehje e rregullt – albanais" lang="sq" hreflang="sq" data-title="Shprehje e rregullt" data-language-autonym="Shqip" data-language-local-name="albanais" 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&tl=en&hl=en-GB&u=https://sr.wikipedia.org/wiki/Regularni_izraz" title="Regularni izraz – serbe" lang="sr" hreflang="sr" data-title="Regularni izraz" data-language-autonym="Српски / srpski" data-language-local-name="serbe" 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&tl=en&hl=en-GB&u=https://sv.wikipedia.org/wiki/Regulj%25C3%25A4ra_uttryck" title="Reguljära uttryck – suédois" lang="sv" hreflang="sv" data-title="Reguljära uttryck" data-language-autonym="Svenska" data-language-local-name="suédois" 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&tl=en&hl=en-GB&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="சுருங்குறித்தொடர் – tamoul" lang="ta" hreflang="ta" data-title="சுருங்குறித்தொடர்" data-language-autonym="தமிழ்" data-language-local-name="tamoul" 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&tl=en&hl=en-GB&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="นิพจน์ปรกติ – thaï" lang="th" hreflang="th" data-title="นิพจน์ปรกติ" data-language-autonym="ไทย" data-language-local-name="thaï" 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&tl=en&hl=en-GB&u=https://tr.wikipedia.org/wiki/D%25C3%25BCzenli_ifade" title="Düzenli ifade – turc" lang="tr" hreflang="tr" data-title="Düzenli ifade" data-language-autonym="Türkçe" data-language-local-name="turc" 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&tl=en&hl=en-GB&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="Регулярний вираз – ukrainien" lang="uk" hreflang="uk" data-title="Регулярний вираз" data-language-autonym="Українська" data-language-local-name="ukrainien" 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&tl=en&hl=en-GB&u=https://ur.wikipedia.org/wiki/%25D8%25B1%25DB%258C%25D8%25AC%25DB%258C%25DA%25A9%25D8%25B3" title="ریجیکس – ourdou" lang="ur" hreflang="ur" data-title="ریجیکس" data-language-autonym="اردو" data-language-local-name="ourdou" 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&tl=en&hl=en-GB&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 – vietnamien" lang="vi" hreflang="vi" data-title="Biểu thức chính quy" data-language-autonym="Tiếng Việt" data-language-local-name="vietnamien" 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&tl=en&hl=en-GB&u=https://wa.wikipedia.org/wiki/Er%25C3%25AEl%25C3%25AAye_ratourneure" title="Erîlêye ratourneure – wallon" lang="wa" hreflang="wa" data-title="Erîlêye ratourneure" data-language-autonym="Walon" data-language-local-name="wallon" 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&tl=en&hl=en-GB&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&tl=en&hl=en-GB&u=https://zh.wikipedia.org/wiki/%25E6%25AD%25A3%25E5%2588%2599%25E8%25A1%25A8%25E8%25BE%25BE%25E5%25BC%258F" title="正则表达式 – chinois" lang="zh" hreflang="zh" data-title="正则表达式" data-language-autonym="中文" data-language-local-name="chinois" 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&tl=en&hl=en-GB&u=https://zh-yue.wikipedia.org/wiki/%25E6%25AD%25A3%25E5%2589%2587%25E8%25A1%25A8%25E9%2581%2594%25E5%25BC%258F" title="正則表達式 – cantonais" lang="yue" hreflang="yue" data-title="正則表達式" data-language-autonym="粵語" data-language-local-name="cantonais" 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">La dernière modification de cette page a été faite le 28 avril 2024 à 17:20.</li> <li id="footer-info-copyright">Le contenu est disponible sous licence <a class="external" rel="nofollow" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://creativecommons.org/licenses/by-sa/4.0/deed.fr">CC BY-SA 4.0</a> sauf mention contraire.</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&tl=en&hl=en-GB&u=https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/fr">Politique de confidentialité</a></li> <li id="footer-places-about"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:%C3%80_propos_de_Wikip%C3%A9dia?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB">À propos de Wikipédia</a></li> <li id="footer-places-disclaimers"><a href="https://fr-m-wikipedia-org.translate.goog/wiki/Wikip%C3%A9dia:Avertissements_g%C3%A9n%C3%A9raux?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-GB">Avertissements</a></li> <li id="footer-places-contact"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Contact">Contact</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code de conduite</a></li> <li id="footer-places-developers"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://developer.wikimedia.org">Développeurs</a></li> <li id="footer-places-statslink"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://stats.wikimedia.org/%23/fr.wikipedia.org">Statistiques</a></li> <li id="footer-places-cookiestatement"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Déclaration sur les témoins (cookies)</a></li> <li id="footer-places-terms-use"><a href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://foundation.m.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use/fr">Conditions d’utilisation</a></li> <li id="footer-places-desktop-toggle"><a id="mw-mf-display-toggle" href="https://translate.google.com/website?sl=auto&tl=en&hl=en-GB&u=https://fr.wikipedia.org/w/index.php?title%3DExpression_r%25C3%25A9guli%25C3%25A8re%26mobileaction%3Dtoggle_view_desktop" data-event-name="switch_to_desktop">Version de bureau</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-5c59558b9d-8n4qm","wgBackendResponseTime":178,"wgPageParseReport":{"limitreport":{"cputime":"0.582","walltime":"0.713","ppvisitednodes":{"value":3306,"limit":1000000},"postexpandincludesize":{"value":113603,"limit":2097152},"templateargumentsize":{"value":18764,"limit":2097152},"expansiondepth":{"value":14,"limit":100},"expensivefunctioncount":{"value":2,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":15604,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 583.822 1 -total"," 54.23% 316.627 1 Modèle:Liens"," 12.06% 70.381 2 Modèle:Références"," 5.27% 30.772 1 Modèle:GDT"," 4.84% 28.229 3 Modèle:Méta_bandeau"," 4.77% 27.834 1 Modèle:Voir_homonymes"," 4.68% 27.323 2 Modèle:Lien_web"," 4.50% 26.252 1 Modèle:Méta_bandeau_de_note"," 4.23% 24.678 1 Modèle:Autres_projets"," 3.91% 22.845 1 Modèle:Portail"]},"scribunto":{"limitreport-timeusage":{"value":"0.332","limit":"10.000"},"limitreport-memusage":{"value":8421461,"limit":52428800}},"cachereport":{"origin":"mw-api-int.codfw.main-6fdd9f9b88-lhqmb","timestamp":"20241129101748","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Expression r\u00e9guli\u00e8re","url":"https:\/\/fr.wikipedia.org\/wiki\/Expression_r%C3%A9guli%C3%A8re","sameAs":"http:\/\/www.wikidata.org\/entity\/Q185612","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q185612","author":{"@type":"Organization","name":"Contributeurs aux projets Wikimedia"},"publisher":{"@type":"Organization","name":"Fondation Wikimedia, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2002-10-11T17:45:38Z","dateModified":"2024-04-28T16:20:37Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/1\/1c\/Kleene.jpg","headline":"s\u00e9quence de caract\u00e8res formant un motif de recherche"}</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('fr', 'en', function () {});}</script> <script src="https://translate.google.com/translate_a/element.js?cb=gtElInit&hl=en-GB&client=wt" type="text/javascript"></script> </body> </html>