Estoy buscando una expresión regular para validar la cadena separada por comas/espacios (permitiendo alfanuméricos y guiones bajos) con el límite en cada valor a 64 y ninguno de tales valores a 16.
var1,val2, val_3 val4 - valid val*1, val&2 - Invalid due to illegal character val1...65,val2, val3 val4 - invalid due to first value has 65 characters val1,val2, val3 val4,...,val17 - invalid because no of values as more than 16He creado una expresión regular parcial, pero hay un problema que no puedo resolver.
^([0-9a-zA-Z_]{0,64}){1}(([,\s]+)([0-9a-zA-Z_]{0-64})){0,15}$Esta parte [0-9a-zA-Z_]{0,64} del patrón también puede coincidir 0 veces, por lo que también podría coincidir con una cadena vacía.
Puede omitir {1} del patrón, la notación en el segundo cuantificador debe ser {0,64} en lugar de {0-64}
Para obtener solo una coincidencia, puede omitir todos los grupos de captura y usar un solo grupo repetido que no sea de captura.
Puede escribir el patrón como:
^\w{1,64}(?:[, \t]+\w{1,64}){0,15}$^ Comienzo de cadena\w{1,64} Coincide con 1-64 caracteres de palabra(?: grupo de no captura[, \t]+ Haga coincidir una coma, un espacio o una tabulación (o use [,\s]+ )\w{1,64} Coincide con 1-64 caracteres de palabra){0,15} Cierre el grupo de no captura y repita 0 - 15 veces$ Fin de la cadenaDemostración de expresiones regulares
Tenga en cuenta que \s también puede coincidir con una nueva línea, por lo que también podría usar [,\s]+