4 Stimmen

Java-Regularausdruck: Übereinstimmung mit einer beliebigen Anzahl von Ziffern in runden Klammern, wenn die schließende Klammer das letzte Zeichen im String ist

Ich brauche Hilfe, um meinen Tag (oder meine Nacht) zu retten. Ich möchte folgendes abgleichen:

  1. Jede Anzahl von Ziffern
  2. Eingeklammert von runden Klammern "()" [Die Klammern enthalten nur Ziffern]
  3. Wenn die schließende Klammer ")" das letzte Zeichen im String ist.

Hier ist der Code, den ich erstellt habe:

// so sieht der Text aus, der Teil, den ich abgleichen möchte, sind die Zahlen in den Klammern am Ende
    String text = "Einige Texte 45 Einige Texte, Text und Text (1234)";  
    String regex = "[keine Ahnung, wie das ausgedrückt werden soll.....]"; // hier sollte der Regex sein
            Pattern regPat = Pattern.compile(regex);
            Matcher matcher = regPat.matcher(text);

            String matchedText = "";

            if (matcher.find()) {
                matchedText = matcher.group();
            }

Bitte helft mir mit dem magischen Ausdruck, ich habe es nur geschafft, jede Anzahl von Ziffern abzugleichen, aber nicht, wenn sie in Klammern eingeschlossen sind und am Ende der Zeile stehen...

Danke!

6voto

anubhava Punkte 713155

Sie können versuchen, dieses Regex zu verwenden:

String regex = "\\(\\d+\\)$";

3voto

ajb Punkte 30610

Wenn Sie nur die Ziffern extrahieren müssen, können Sie dieses Regex verwenden:

String regex = "\\((\\d+)\\)$";

und den Wert von matcher.group(1) erhalten. (Erklärung: Die Zeichen ( und ), die von Backslashes eingeleitet werden, entsprechen den runden Klammern wörtlich; die Zeichen ( und ), die nicht von Backslashes eingeleitet werden, sagen dem Matcher, dass der darin enthaltene Teil, d.h. nur die Ziffern, eine Erfassungsgruppe bilden, und der Teil, der der Gruppe entspricht, kann durch matcher.group(1) erhalten werden, da dies die erste und einzige Erfassungsgruppe im Regex ist.)

2voto

Sabuj Hassan Punkte 36922

Dies ist der erforderliche Regex für Ihre Bedingung

\\(\\d+\\)$

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X