2016-09-28 3 views
1

Ich möchte Regex-Muster in Java für bestimmten Text übereinstimmen. Dabei muss ich Übereinstimmungen in umgekehrter Reihenfolge finden.Java Regex passt Schleife in umgekehrter Richtung

Beispiel:

Regex Pattern -- [([^]]*]) 

Input String -- [blue][red][green] 

Output -- 1st match --->[blue] 
      2nd match --->[red] 
      3rd match --->[green] 

Aber ich erwarte Spiel in umgekehrter Reihenfolge zu sein.

Expected output -- 1st match --->[green] 
      2nd match --->[red] 
      3rd match --->[blue] 

Bitte helfen Sie, die Regex zu bilden, um die erwartete Ausgabe zu erreichen.

+0

@ScaryWombat StringBuilder.reverse den String als Ganzes wie diese] Neerg [] der [] eulb reverse [. Ich weiß nicht, wie es zu lösen meine Bitte erklären Sie mir – Roshan

+0

Entschuldigung - dumm Kommentar –

+0

möchten Sie einige Code, den Sie ausprobiert haben –

Antwort

0

Reverse regular expression in Java diskutiert das Thema, und ich habe eine Lösung dort, hinzugefügt hier für die Bequemlichkeit.

Wenn jemand an einer Java-Lösung interessiert ist, habe ich eine Bibliothek implementiert, um genau das zu tun. https://github.com/vsch/reverse-regex.

Verarbeitet alle gültigen Java-Regex-Konstrukte und bietet Dienstprogrammklassen zum Umbrechen von Mustern, Matcher und Eingaben für Rückwärtssuchen, um alle erforderlichen Zuordnungen und Umkehrungen zu verarbeiten.

0

Angenommen, Sie regex date“erfüllt haben

 ArrayList<String> strings = new ArrayList<>(); 
      Matcher foo = date.matcher("foo"); 
      while (foo.matches()) { 
       strings.add(foo.group()); 
      } 
      Collections.reverse(strings);