Ich wollte alle Zeichen nach dem Ende der ersten Zahlenfolge entfernen.Entfernen Sie alle Zeichen nach einer bestimmten Sequenz
Edit: (Sorry für Mehrdeutigkeit)
- Die Zeichenfolge kann oder nicht mit Buchstaben beginnen, aber falls es beginnt die Buchstaben erhalten werden sollte.
Nach der ersten Folge von Zahlen sollte alles entfernt werden.
z.B. QWEE1232RTY -> QWE1232
123RTY -> 123
12342 -> 12342
str.replaceAll("[^A-Z][^0-9]+","");
Dies sollte funktionieren, aber es ist unerwartete Ausgabe geben und nicht den Druck der wiederholt "2".
My ideone code for the attempt and it's respective outputs
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String str = "BCTC27452ASDFCCC";
System.out.println(str.replaceAll("[^A-Z0-9]",""));
// BCTC27452ASDFCCC
System.out.println(str.replaceAll("[^A-Z0-9]$",""));
// BCTC27452ASDFCCC
System.out.println(str.replaceAll("[^A-Z][^0-9]",""));
// BCTC2745SDFCCC
System.out.println(str.replaceAll("[^A-Z][^0-9]+",""));
// Closest Output - "BCTC2745" (why 2nd "2" not printed)
System.out.println(str.replaceAll("[^A-Z][^0-9]*",""));
// BCTC
System.out.println(str.replaceAll("[^A-Z][^0-9+]",""));
// BCTC2745SDFCCC
System.out.println(str.replaceAll("[^A-Z][^0-9*]",""));
// BCTC2745SDFCCC
System.out.println("Expected Output: BTC27452");
}
}
Warum nicht einfach extrahieren ['^ [AZ] {4} [0-9] {5}'] (https://regex101.com/r/aE5cN9/2) – Tushar
Ist Ihre Frage, warum '2' ist entfernt? Könnten Sie die Regeln klären? –
@Tushar Die Anzahl der Buchstaben ist nicht festgelegt. – sian