{"id":281,"date":"2023-08-31T13:53:38","date_gmt":"2023-08-31T11:53:38","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/?page_id=281"},"modified":"2023-09-22T10:05:08","modified_gmt":"2023-09-22T08:05:08","slug":"1-13-4-expresiones-regulares-en-ingles-regexps","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/1-13-4-expresiones-regulares-en-ingles-regexps\/","title":{"rendered":"1.13.4. Expresiones regulares (en ingl\u00e9s, <em>regexps<\/em>)"},"content":{"rendered":"<p>Dado que <code>gawk<\/code> es un lenguaje especializado en el procesamiento de archivos de texto basado en patrones, es esencial volver a presentar una secci\u00f3n sobre expresiones regulares. Una nueva presentaci\u00f3n siempre ayuda a fijar los temas a estudiar.<\/p>\n<p>Una expresi\u00f3n regular (<em>regex<\/em> o <em>regexp<\/em>) define uno o varios conjuntos de cadenas de caracteres utilizando una notaci\u00f3n espec\u00edfica:<\/p>\n<ul>\n<li>Una cadena literal de caracteres es una <em>regex<\/em> que define una sola cadena: a s\u00ed misma.<\/li>\n<li>Una expresi\u00f3n regular m\u00e1s compleja:\n<ul>\n<li>Caracteres ordinarios usados en <em>regexe<\/em>: _, <code>A-Z, a-z, 0-9<\/code><\/li>\n<li>Metacaracteres usados en <em>regexe<\/em>: <code>.*[ ]^${ }+?|( )<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Las\u00a0<em>regexes<\/em>\u00a0se utilizan para encontrar patrones espec\u00edficos en archivos de texto. Programas como\u00a0<em>ed,\u00a0vim,\u00a0grep,\u00a0sed,\u00a0awk,\u00a0perl<\/em>, entre otros muchos, hacen uso de\u00a0<em>regexes<\/em>\u00a0para buscar dichos patrones en archivos de texto.<\/p>\n<p>Hay dos\u00a0motores de b\u00fasqueda\u00a0de patrones mediante expresiones regulares y hay que tenerlo muy en cuenta en funci\u00f3n del comando que se quiere utilizar<\/p>\n<ul>\n<li>El motor b\u00e1sico de expresiones regulares (BRE), utilizado por ejemplo por <em>sed<\/em> y\u00a0<em>grep<\/em>.<\/li>\n<li>El motor extendido de expresiones regulares (ERE), utilizado por ejemplo por <code>gawk<\/code> y\u00a0<em>perl<\/em>.<\/li>\n<\/ul>\n<p>Se a\u00f1aden dos tablas con la notaci\u00f3n de caracteres BRE\/ERE empleados m\u00e1s frecuentemente con <code>gawk<\/code> (tablas 14 y 15).<\/p>\n<div class=\"tabletitle\"><p>Tabla 14. Notaci\u00f3n de caracteres especiales. Motor BRE\/ERE.<\/p>\n<\/div>\n<table width=\"602\">\n<tbody>\n<tr class=\"table-header\">\n<td width=\"132\"><strong>Notaci\u00f3n<\/strong><\/td>\n<td width=\"470\"><strong>Significado<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>\\<\/code><\/td>\n<td width=\"470\">Escapa el significado del metacar\u00e1cter, interpretaci\u00f3n literal<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>.<\/code><\/td>\n<td width=\"470\">Cualquier car\u00e1cter sencillo salvo NULL<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>*<\/code><\/td>\n<td width=\"470\">Cualquier cantidad de veces (o cero) el car\u00e1cter precedente<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>^<\/code><\/td>\n<td width=\"470\">La <em>regexp<\/em> coincide al inicio de la l\u00ednea o cadena de caracteres<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>$<\/code><\/td>\n<td width=\"470\">La <em>regexp<\/em> coincide al final de la l\u00ednea o cadena de caracteres<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>[123][A-Z]<\/code><\/td>\n<td width=\"470\">Cualquiera de los caracteres incluidos o rango indicado coinciden<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>[[:alnum:]]<\/code><\/td>\n<td width=\"470\">Alfanum\u00e9ricos [a-zA-Z0-9_]<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>[[:alpha:]]<\/code><\/td>\n<td width=\"470\">Caracteres alfab\u00e9ticos [a-zA-Z]<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>[[:space:]]<\/code><\/td>\n<td width=\"470\">Espacios (<code>' '<\/code>, tabuladores, salto de l\u00ednea)<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>[[:blank:]]<\/code><\/td>\n<td width=\"470\">Coincide espacios y tabuladores<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>[[:upper:]]<\/code><\/td>\n<td width=\"470\">Coincide [A-Z]<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>[[:lower:]]<\/code><\/td>\n<td width=\"470\">Coincide [a-z]<\/td>\n<\/tr>\n<tr>\n<td width=\"132\"><code>[[:digit:]]<\/code><\/td>\n<td width=\"470\">Coincide [0-9]<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"tablefooter\"><p>Fuente: elaboraci\u00f3n propia.<\/p>\n<\/div>\n<p>Y otra tabla en particular, con la notaci\u00f3n de caracteres ERE usados m\u00e1s frecuentemente:<\/p>\n<div class=\"tabletitle\"><p>Tabla 15. Clase de caracteres ERE m\u00e1s frecuentemente usados.<\/p>\n<\/div>\n<table width=\"602\">\n<tbody>\n<tr class=\"table-header\">\n<td width=\"113\"><strong>Notaci\u00f3n<\/strong><\/td>\n<td width=\"489\"><strong>Significado<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>\\w<\/code><\/td>\n<td width=\"489\">Caracteres alfanum\u00e9ricos [a-zA-Z0-9_]<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>\\W<\/code><\/td>\n<td width=\"489\">Caracteres no alfanum\u00e9ricos [^[:alnum:]_]<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>\\s<\/code><\/td>\n<td width=\"489\">Coincide con espacios y tabuladores<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>\\d<\/code><\/td>\n<td width=\"489\">Coincide [0-9]<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>\\&lt;<\/code><\/td>\n<td width=\"489\">Coincide con el inicio de una palabra<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>\\&gt;<\/code><\/td>\n<td width=\"489\">Coincide con el final de una palabra<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>{n,m}<\/code><\/td>\n<td width=\"489\">Expresi\u00f3n de intervalo: coinciden <em>n<\/em> instancias, o de <em>n<\/em> a <em>m<\/em> instancias<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>+<\/code><\/td>\n<td width=\"489\">Coincide una o m\u00e1s instancias de la <em>regexp<\/em> precedente<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>\u00bf<\/code><\/td>\n<td width=\"489\">Coinciden cero o una instancia de la <em>regexp <\/em>precedente<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>|<\/code><\/td>\n<td width=\"489\">Coincide la <em>regexp<\/em> especificada antes o despu\u00e9s de | (esto|aquello)<\/td>\n<\/tr>\n<tr>\n<td width=\"113\"><code>( )<\/code><\/td>\n<td width=\"489\">Busca un <em>match<\/em> al grupo de <em>regexes<\/em> incluidas: (esto|aquello)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"tablefooter\"><p>Fuente: elaboraci\u00f3n propia.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Dado que gawk es un lenguaje especializado en el procesamiento de archivos de texto basado en patrones, es esencial volver a presentar una secci\u00f3n sobre expresiones regulares. Una nueva presentaci\u00f3n siempre ayuda a fijar los temas a estudiar. Una expresi\u00f3n regular (regex o regexp) define uno o varios conjuntos de cadenas de caracteres utilizando una [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/281"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/comments?post=281"}],"version-history":[{"count":7,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/281\/revisions"}],"predecessor-version":[{"id":496,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/281\/revisions\/496"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/media?parent=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}