es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Buscar cada cadena individual después de un carácter en Java (RegEx)

Necesito ayuda con esto, así que ehmm… Tengo una cadena de texto:

Hey ~firstname ~lastname hoy es el ~date

Quiero que el programa imprima este resultado:

nombre apellido fecha

en una lista obtenida del matcher (ya tengo una forma de hacer eso). Lo único que necesito es la expresión regular para obtener mi resultado deseado

Se agradecerá toda ayuda

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la salida deseada de la cadena, puedes utilizar un patrón de expresión regular con grupos para coincidir con las partes específicas que deseas. Aquí tienes un ejemplo de un patrón de expresión regular que debería funcionar para tus necesidades:

    String regexPattern = "~(\\w+)";
    

    Este patrón de expresión regular coincide con cualquier carácter de palabra que siga al carácter de tilde (~). Los paréntesis crean un grupo que captura los caracteres de palabra para que puedas extraerlos fácilmente más adelante.

    Para utilizar este patrón de expresión regular en tu código, puedes crear un objeto Matcher y llamar a su método find() repetidamente para encontrar todas las coincidencias en la cadena de entrada:

    String inputString = "Hey ~firstname ~lastname hoy es el ~date";
    String regexPattern = "~(\\w+)";
    
    Pattern pattern = Pattern.compile(regexPattern);
    Matcher matcher = pattern.matcher(inputString);
    
    List<string> matches = new ArrayList<string>();
    
    while (matcher.find()) {
        matches.add(matcher.group(1));
    }
    
    System.out.println(matches);
    

    Este código crea un objeto Matcher utilizando el patrón de expresión regular, y luego encuentra todas las coincidencias en la cadena de entrada utilizando un bucle while con el método find(). La llamada al método group(1) extrae el grupo capturado de cada coincidencia y lo agrega a una lista. Finalmente, la lista se imprime en la consola.

    Esto debería producir la salida que deseas:

    [firstname, lastname, date]
    

    ¡Espero que te sirva!

Comments are closed.