kann man prüfen ob zwei zahlen nicht nebeneinander stehen in regex?

2 Antworten

@JanMarcel hat bereits ein Pattern geliefert, welcher feststellt ob 2 beliebige Zahlen nicht nebeneinander stehen (ein beliebiger Buchstabe steht dazwischen).

ein anderes Szenario wäre festzustellen ob 2 gleiche Ziffern aufeinander folgen (oder nicht)

Viel einfacher wäre es Nachzuschauen ob eine Doppelziffer in einem String enthalten ist und danach zu entscheiden in welche Richtung etwas (nicht) getan werden muss.

in Regex sähe das so aus: (\d)\1+

  • wenn Ziffer->merken, Match wenn diese von der gemerkten/1 mindestens 1 Mal+ gefolgt wird.

In Java müssen Backslashes in Stringsdeklarationen verdoppelt werden! : (\\d)\\1+

import java.util.regex.*;

public class Main {
  public static void main(String[] args) {
    Pattern pattern = Pattern.compile("(\\d)\\1+");
    Matcher matcher = pattern.matcher("9748836");
    boolean matchFound = matcher.find();
    if(matchFound) {
      System.out.println("dopplte Ziffern");
    } else {
      System.out.println("keine dopplten Ziffern");
    }
  }
}

Hey,

könnte es das sein, was du suchst?

"^.*\d+\D+\d+.*$"

Zum Testen kannst du die Seite Regex101 nutzen.

Mfg Jannick (L1nd)

Woher ich das weiß:eigene Erfahrung