2017-04-20 3 views
0

Ich versuche herauszufinden, wie Option Werte in einem Lookaround mit regulären Ausdrücken gesetzt werden.Optionals in einem Blick um reguläre Ausdrücke

sollten Diese Werte sollten nicht

3/4 

Ich möchte sagen, in regex „entsprechen nur

3 
1000 
15-20 
2048-4096/100 

Dieser Wert entsprechen, wenn es eine Zahl Strich 4 Ziffer ist und ein Doppelpunkt vor dem/division symbol

Zum Beispiel:

  1. -9999 die / Division Symbol vorhergehenden sollte
  2. 9999/ sollte nicht übereinstimmen übereinstimmen, weil es keine -
  3. -/ sollte nicht überein, weil es keine Zahl

    ist

    ^[^0][0-9]*(-|:)?([0-9]*)?(?<=[0-9])(\/)?([0-9]*)$

I hab das umsehen gesucht nur eine vorhergehende nummer aber wenn ich eine ? oder einstelle * darin funktioniert es nicht mehr. Danke für die Hilfe!!!

+1

Können Sie klären, was die beabsichtigte Regel tun soll? Ich bin mir nicht sicher, ob ich das Muster in der Liste der gültigen Zahlen verstehe. – noahnu

+0

dash = '-', Schrägstrich ='/', welches ist es? –

+0

'(\ d {4} - \ d {4}/\ d +)' –

Antwort

2
^\d+(?:[-:](?:\d{4}\/\d+|\d+))?$ 

Wenn ich zu verstehen, was Sie

  • \ d + Beginnt mit einer bestimmten Anzahl
  • richtig wollen (?: ...)? Gefolgt von optionalen Muster, die mit einem Bindestrich oder Doppelpunkt
  • \ d {4}/\ d + Die Nummer in der optionalen Gruppe kann eine 4-stellige Nummer mit einem Schrägstrich und eine andere Nummer
  • \ d + oder die optionale Gruppe kann Sei eine beliebige Zahl, wenn sie nicht mit einem Schrägstrich beginnt.
+0

Funktioniert gut: https://regex101.com/r/ 1xRdhO/1 –

+0

Obwohl ich dieses Muster nicht verstehen konnte: '[-:]' was ist der Zweck von ':'? –

+0

Gerade jetzt ist es irrelevant oder? –