De las líneas en un archivo me gustaría encontrar aquellas que
^(202\d) por ejemplo 2022 o 2023[AZ]{1,4} o hasta 3 números \d{1,3} y al menos una letra [AZ]{1} por ejemplo ABCD o A123 o 1A23 o 123AA o REjemplos
YYYYxxxxA // find rows that match 2022xxxxA 2022A150A // relevant matches 2022B260A // " 20223A70A // " 20224B84A // " 20224B A // not relevant due to spaces \s\s 20221234A // not relevant due to 4 digits and no letterEn visual-studio-code probé javascript regex (ver mi demo@regex101.com )
Estas dos expresiones regulares parecen funcionar
2022(\d\D\w\w|\D\d\w\w|\d\d\D\w|\d\d\w\D|\D\D\D\D)A // or ^(202\d)(\d{0,3}[AZ]{1,4}|[AZ]{1,4}\d{1,3})([\dA-Z]{0,4})A202 literalmente y \d coincide con un dígito (equivalente a [0-9])\d coincide con un dígito (equivalente a [0-9]){0,3} coincide con el token anterior entre 0 y 3 veces| son una variación de la primeraMe gustaría saber si hay una mejor opción que
^(202\d)(\d{0,3}[AZ]{1,4}|[AZ]{1,4}\d{1,3})([\dA-Z]{0,4})A para (xxxx) debe contener al menos 1 mayúscula y no más de 3 dígitos?
Prueba con mi demo
Su expresión regular final también coincidirá con las dos líneas a continuación, porque permite hasta 3+4+4 caracteres para esa segunda parte, y también solo 1 letra:
2022999BBBB9999A 2022BAPara la parte que debe tener 4 alfanuméricos, incluyendo al menos una letra, podrías expresar esa condición de la siguiente manera:
Como esto: