jestem dopasowanie regex formularzaregex Java uzyskać niezrównaną część
abc.*def.*pqr.*xyz
Teraz ciąg abc123def456pqr789xyz
będzie pasować do wzorca. Chcę znaleźć struny 123, 456, 789 z matcherem.
Jaki jest najprostszy sposób to zrobić?
jestem dopasowanie regex formularzaregex Java uzyskać niezrównaną część
abc.*def.*pqr.*xyz
Teraz ciąg abc123def456pqr789xyz
będzie pasować do wzorca. Chcę znaleźć struny 123, 456, 789 z matcherem.
Jaki jest najprostszy sposób to zrobić?
Zmiana regex do abc(.*)def(.*)pqr(.*)xyz
i nawiasy zostaną automatycznie zobowiązany do
$1
przez $3
jeśli użyć String.replaceAll() lubwidoczny dokumentacja urządzenia Pattern class, w szczególności Groups and Capturing, aby uzyskać więcej informacji.
Przykładowy kod:
final String needle = "abc(.*)def(.*)pqr(.*)xyz";
final String hayStack = "abcXdefYpqrZxyz";
// Use $ variables in String.replaceAll()
System.out.println(hayStack.replaceAll(needle, "_$1_$2_$3_"));
// Output: _X_Y_Z_
// Use Matcher groups:
final Matcher matcher = Pattern.compile(needle).matcher(hayStack);
while(matcher.find()){
System.out.println(
"A: " + matcher.group(1) +
", B: " + matcher.group(2) +
", C: " + matcher.group(3)
);
}
// Output: A: X, B: Y, C: Z
Oto regex, że może robić to, co trzeba.
abc(\\d*)def(\\d*)pqr(\\d*)xyz
Ale powinniśmy mieć więcej przykładów ciągów wejściowych i co powinno być dopasowane.