Last active
September 7, 2026 14:17
-
-
Save rmorenobello/635e326e15e12bc01c1ab389f2e9064e to your computer and use it in GitHub Desktop.
Regular Expressions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Convertir: | |
| cei_nsre NUMBER(9, 0) NOT NULL, | |
| oeit_div DATE NULL, | |
| col_cpr VARCHAR2(2), | |
| NOT NULL puede o no estar, lo ignoramos. | |
| en: | |
| cei_nsre NUMBER 9 0 | |
| oeit_div DATE null null | |
| col_cpr VARCHAR2 2 null | |
| Es decir, columnas Tipo, Tamaño, Decimales, separadas por saltos de tabulador (que he representado con \t) | |
| --------------------------------------- | |
| Flavour = PCRE2 (Notepad++) | |
| Regex: | |
| ^(\w+)\s+([A-Z0-9]+)(?:\((\d+)(?:\s+[A-Z]+)?(?:,\s?(\d+))?\))?\s*(?:(?:NOT )?NULL)?(?:,)?$ | |
| NOT NULL puede o no estar, lo ignoramos. | |
| Substitution: | |
| $1\t$2\t(?3$3:null)\t(?4$4:null) | |
| con sustitucion condicional (?3$3:null) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Enunciado: | |
| Regular expression en flavour PCRE2. | |
| Tendría que coger este texto | |
| NUMBER(9,0) | |
| DATE | |
| VARCHAR2(2 CHAR) | |
| y devolver | |
| NUMBER\t9\t0 | |
| DATE\tnull\tnull | |
| VARCAHR2\t2\null | |
| Es decir, columnas Tipo, Tamaño, Decimales, separadas por saltos de tabulador (que he representado con \t) | |
| ------------------------------------------------------- | |
| Flavour = PCRE2 (Notepad++) | |
| Regex: | |
| ^([A-Z0-9]+)(?:\((\d+)(?:\s+[A-Z]+)?(?:,(\d+))?\))?$ | |
| Substitution: | |
| $1\t(?2$2:null)\t(?3$3:null) | |
| con sustitucion condicional (?2$2:null) | |
| Explicación del patrón: | |
| ^ y $ : Marcan el inicio y el fin de la línea. | |
| ([A-Z0-9]+) : Grupo 1. Captura el nombre del tipo de datos (ej. NUMBER, DATE, VARCHAR2). | |
| (?:\( ... \))? : Grupo no capturador opcional para los paréntesis. Esto permite que tipos como DATE coincidan aunque no tengan paréntesis. | |
| (\d+) : Grupo 2. Captura el primer número (el tamaño). | |
| (?:\s+[A-Z]+)? : Grupo no capturador opcional para ignorar modificadores de texto dentro del paréntesis (como CHAR o BYTE). | |
| (?:,(\d+))? : Grupo no capturador opcional que busca una coma seguida de dígitos. | |
| (\d+) (dentro del grupo anterior): Grupo 3. Captura el segundo número (los decimales), si existe. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment