b'\n_START_ARTICLE_\nComprovaci\xc3\xb3 de patrons\n_START_PARAGRAPH_\nEn tecnologies de la informaci\xc3\xb3, l\'encaix o comprovaci\xc3\xb3 de patrons (en angl\xc3\xa8s: pattern matching) \xc3\xa9s l\'operaci\xc3\xb3 de comprovar si una dada pot ser descomposta a partir de les operacions especificades en una expressi\xc3\xb3 patr\xc3\xb3, obtenint-ne els components constitutius i assignant-los a les variables especificades al patr\xc3\xb3, cas de patrons d\'expressions algebraiques o obtingudes com a resultat en cas d\'expressions regulars en forma de llista de seccions delimitades per par\xc3\xa8ntesis._NEWLINE_Els patrons algebraics s\'utilitzen molt en llenguatges de programaci\xc3\xb3 funcional. Per exemple, si es t\xc3\xa9 una dada cadena \'abc\' i el patr\xc3\xb3 \xc3\xa9s x.\'c\' (x seguit de \'c\') la comprovaci\xc3\xb3 tindr\xc3\xa0 \xc3\xa8xit i s\'assignar\xc3\xa0 a la variable x el valor \'ab\'. Normalment se sol especificar una llista de patrons possibles i les accions a prendre en cada cas._NEWLINE_Cas de llistes i llenguatge Haskell:_NEWLINE_ [] \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 identifica la llista buida_NEWLINE_ (x:xs) \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 expressa la composici\xc3\xb3 a partir d\'un element i una altra llista _NEWLINE_La descomposici\xc3\xb3 per comprovaci\xc3\xb3 de patrons es pot completar amb guardes per especificar accions a fer en subdominis de valors._NEWLINE_(x:xs) | x<5 ..._NEWLINE_| altrament ..._NEWLINE_En llenguatge Scala es pot afegir comprovaci\xc3\xb3 de tipus en els patrons_NEWLINE_x:String ..._NEWLINE_x:Int ..._NEWLINE_Els valors individuals tamb\xc3\xa9 poden ser especificats com a patrons_NEWLINE_0 ..._NEWLINE_1 ..._NEWLINE_n ...\n_START_SECTION_\nExpressions regulars\n_START_PARAGRAPH_\nEls patrons d\'expressions regulars permeten descompondre un text i seleccionar subseq\xc3\xbc\xc3\xa8ncies marcades entre par\xc3\xa8ntesis, obtenint com a resultat la llista de frases dites grups corresponents a les zones delimitades, que poden aplicar-se posteriorment a una substituci\xc3\xb3 afegint un patr\xc3\xb3 de substituci\xc3\xb3 amb \\1 \\n o $1 $n marcant els llocs on incloure els grups obtinguts._NEWLINE_Hi ha llenguatges que incorporen aquests patrons amb tipus propis com ara Javascript_NEWLINE_rexp = /a(b?c*)d(e?[a-c]{1,5}g)h/\xc2\xa0;_NEWLINE_x = tira.replace(rexp, "..$1..$2..")\xc2\xa0;_NEWLINE_i els que no ho fan els construeixen a partir de cadenes de text i proporcionen biblioteques de rutines espec\xc3\xadfiques per a aquest prop\xc3\xb2sit._NEWLINE_rexp = "a(b?c*)d(e?[a-c]{1,5}g)h"\xc2\xa0;'