Coincidencia de patrones de flujo de caracteres maravillosos

Tengo el siguiente código, del reader corriente quiero eliminar todas las apariciones de Command ran successfully. Ayúdame a sugerir cualquier solución

String ostream="license_all (47286) Command ran successfully. License a Command ran     successfully."
Reader reader = new StringReader(ostream)
for(c in reader)
{
print(c)
}

preguntado el 28 de septiembre de 11 a las 06:09

1 Respuestas

Si solo quieres el exacto forma de Command ran successfully., entonces puedes hacer esto:

reader.eachLine{ c ->
    println c.replaceAll('Command ran successfully.', '')
}

Sin embargo, si desea ser más flexible y reemplazarlo sin tener en cuenta los espacios y las mayúsculas, use esto:

reader.eachLine{ c ->
    println c.replaceAll(/(?i)command\s+ran\s+successfully\s*\./, '')
}

Tenga en cuenta que en ambos casos, debido a que estamos recorriendo cada línea, puede ser importante volver a agregar en el salto de línea (println vs print). Además, debido al bucle en cada línea, esto no reemplazará la cadena si se divide en más de una línea.

aquí está un ejemplo completo que puedes ejecutar y modificar en Groovy Web Console. (Enlace al original con for...in.)

Respondido el 28 de Septiembre de 11 a las 11:09

Oh, también debería mencionar, es más Maravilloso usar reader.eachLine{ c -> }, porque maneja el cierre de la secuencia automáticamente. Documentos en eachLine - Demasiado entusiasta

Sí, había publicado el ejemplo de Groovy Web Console antes de pensar en eso. Supongo que seguiré adelante y limpiaré a los dos. :-) - Demasiado entusiasta

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.