Otros consejos

A continuación se muestra un fragmento de código que analiza una cadena (o todo un archivo, escáner acepta ambos), y los extractos el número y el nombre de cada línea:

String s = 
    "1 | Mr John Doe\n" + 
    "2 | Ms Jane Doe\n" + 
    "3 | Jackie Chan\n";

Pattern pattern = Pattern.compile("(\\d+) \\| ((\\w|\\s)+)");
Scanner scan = new Scanner(s);
while (scan.findInLine(pattern) != null) {
    MatchResult match = scan.match();

    // Do whatever appropriate with the results
    System.out.printf("N° %d is %s %n", Integer.valueOf(match.group(1)), match.group(2));

    if (scan.hasNextLine()) {
        scan.nextLine();
    }
}

Este fragmento de código produce el resultado siguiente:

N° 1 is Mr John Doe
N° 2 is Ms Jane Doe
N° 3 is Jackie Chan
" \| " 

funcionaría, lo que necesita para escapar de las cotizaciones y la |

No se olvide de incluir el * para que coincida con la repetición de caracteres

\S*\s*\|\s*[\S\t ]*

Editado - Se puede utilizar simplemente esto también .*\|.*

......

^[ \| ]?$
scroll top