Regex para coincidir solo hasta la primera aparición de la clase
Estoy buscando construir una expresión regular que me ayude a identificar la primera vez que se produce una coincidencia.
Mi regex actual es"(.*)[Cc][Aa][Ss][Ee][^a-zA-Z\\d]*(\\d\\d*)[^a-zA-Z\\d]*(.*)"
Lo que estoy tratando de hacer es encontrar si la cadena de entrada contiene la palabra "caso" (no distingue mayúsculas y minúsculas), seguida de cualquier número de caracteres especiales, seguida de un número; Quiero recuperar 3 partes del texto. Di que mi cadena de entrada es"RE: FW: case:-1234: there is some description"
Usando esta expresión regular, puedo recuperar,"RE: FW: "
, "1234"
, "there is some description"
.
Esto está bien, pero si mi cadena de entrada es"RE: FW: case:-1234: This is in reference to case 789 reopening"
Entonces mi regex regresa,"RE: FW: case:-1234: This is in reference to"
, "789"
, "reopening"
.
Lo que me gustaría conseguir es"RE: FW: "
, "1234"
, "This is in reference to case 789 reopening"
.
Soy un novato con expresiones regulares, por lo que cualquier ayuda es muy apreciada.
Nota: Estoy trabajando en una herramienta basada en Java, por lo que la expresión regular compatible con Java estaría bien.