2017-11-16 1 views
0

Ich möchte eine Regex, die Gruppen wie abbc entspricht, wo jeder Buchstabe ein anderes Zeichen ist.Regex mehrere Ausschlüsse

  • sollte es drei Einfang-Gruppen enthalten
  • alle Einfang-Gruppen verschiedene Zeichen enthalten sollte
  • die zweite abgestimmt sein sollte genau zweimal

Beispiel:

Bank (nicht übereinstimmend, da das zweite und das dritte Zeichen nicht identisch sind)

Saatkrähe (angepasst)

Buch (angepasst)

Poop (nicht angepasst, weil das erste und das letzte Zeichen der gleiche ist)

Bisher habe ich so etwas wie dies versucht haben, :

(.)(.(?!\1))\2(.(?!\1)(?!\2)) 

Dies entspricht jedoch poop auch. Wie korrigiere ich das?

+0

Regex ist möglicherweise nicht das richtige Werkzeug dafür. –

Antwort

1

Ihre Positionierung der Lookaheads ist ein bisschen weg, können Sie es wie

(.)(?!\1)(.)\2(?!\1|\2)(.) 

https://regex101.com/r/heBJar/1

Sie sehen tun können, könnten je nach Bedarf müssen Anker oder Wortgrenzen gelten. Sie sollten auch die Verwendung von [a-z] oder [[:alpha:]] oder ähnlich anstelle der . in Betracht ziehen.