2017-11-05 10 views
1

ich https://pythex.org/ bin mit zu testen, die folgenden:Regex: genau 3 Großbuchstaben suchen

Ich möchte unter den Test Zeichenfolge suchen, wählen Sie alle aufeinanderfolgenden Zeichen, die genau drei Großbuchstaben haben.

Test-string: bcAc BBGFeQFFJaaBx EBBcDDD

[A-Z]{3} gibt alle Gruppen von drei Großbuchstaben und auch solche mit 4 nach innen. Ich habe versucht, nur 3 Großbuchstaben mit ^[A-Z]{3}$ zu erzwingen, aber das funktioniert auch nicht. Im obigen String möchte ich nur EBB und DDD übereinstimmen.

+0

Zugabe warum '^ [AZ] {3} $' nicht funktioniert, bedeutet dies, dass für Zeichenfolge suchen, die vom Beginn der Zeile '(Zeichen ^)' Zeilenende '(Zeichen $)' enthält genau 3 Großbuchstaben, Zeilen wie 'DDD' oder' EBB' würden funktionieren, aber nicht deine Testzeichenfolge oder 'DDe' oder' DDDD' würde nicht oder andere Kombinationen –

Antwort

1

Verwendung negativ lookarounds:

[A-Z]{3}(?<![A-Z]{4})(?![A-Z]) 

Live demo

+0

Ich habe dies jetzt geändert, um nach drei aufeinanderfolgenden Großbuchstaben zu suchen das gleiche gefolgt von einem Kleinbuchstaben: ([AZ]) \ 1 \ 1 (?

+0

Sie haben nicht die richtige Regex gekocht, was Sie brauchen, ist '(?: [AZ]) {3} (? revo

+0

Danke dafür. Ich musste gruppieren (az), um es in meinem Code arbeiten zu lassen, dh (?: [AZ]) {3} (?

0

Nicht sicher, ob dies die beste Lösung ist, aber ich verwendet negativen Lookbehinds und Lookaheads, um sicherzustellen, dass es vor oder hinter keine Großbuchstaben waren die Drei-Buchstaben-Bits. nur

(?<![A-Z])[A-Z]{3}(?![A-Z]) 
Verwandte Themen