Ayer encontré un pequeño problema. Necesitaba procesar algunos usuarios en lotes. El formato de los usuarios enviados desde la recepción era el siguiente. Quería extraer el contenido entre corchetes (sin corchetes).
Profesor 10(0010)
Maestra 11(0011)
Profesora 9(009)
Profesor 12(0012)
Profesor 13(0013)
Profesor 14(0014)
Originalmente quería usar String.split() y substring() de Java para hacerlo, pero fue problemático procesarlo varias veces, así que usé expresiones regulares. Aunque casi me he olvidado de la sintaxis, creo que es más conveniente utilizar aserciones (la clave es esperar que los resultados no tengan paréntesis). Abra RegexBuddy y pruébelo. Es fácil de hacer:
El siguiente es el código de implementación de Java:
Finalmente, aquí están las aserciones de ancho cero utilizadas:
amplia afirmación | (?=exp) | Coincide con la posición antes de exp. |
---|---|---|
(?<=exp) | Coincide con la posición después de exp. | |
(?!exp) | Coincide con una posición que no está seguida por exp. | |
(?<!exp) | Coincide con la posición que no está precedida por exp. |