2016-09-12 5 views
0

Bitte helfen Sie mir für den regulären Ausdruck der Zeichenfolge wie diese sp13-bse-018.regulären Ausdruck für Satz

Ich habe folgende Eingänge bekam:

  • beginnt mit fa oder sp
  • von 2 Ziffern folgen und -
  • Dann bcs, btn oder bse
  • - und 3 Ziffern

Ich habe diesen regulären Ausdruck für diese

^((\SP)|(sp)|(FA)|(fa))[1-9][0-9]{2}-{0,1}((BSE)|(bse)|(bcs)|(BCS)|(BTN)|(btn))-{0,1}[0-9]{3}$ 

aber dies funktioniert nicht richtig, und ich habe auch eine Menge Suche machen, aber ich kann es.

Ich werde sehr dankbar sein für Ihre Hilfe.

Antwort

2

Es sieht so aus, als wäre der Schuldige die obligatorische Nullstelle [1-9], und sobald Sie es entfernen, wird Ihre Regex funktionieren.

Sie Ihr Muster durch Entfernen unnötiger Gruppen und mit einem Groß- und Kleinschreibung Flagge verkürzen können:

/^(sp|fa)[0-9]{2}-?(bse|bcs|btn)-?[0-9]{3}$/i 

Siehe regex demo

Einzelheiten:

  • ^ - von String-Start
  • (sp|fa) - entweder sp oder fa
  • [0-9]{2} - zwei ASCII-Ziffern
  • -? - ein optionaler (aufgrund ?) Bindestrich
  • (bse|bcs|btn) - entweder bse oder bcs oder btn
  • -? - ein optionaler Bindestrich
  • [0-9]{3} - 3 ASCII-Ziffern
  • $ - Ende der str Ing.

Die Groß- und Kleinschreibung Flagge ermöglicht auch Sp passend, sP, wenn Sie also nicht, dass das Verhalten wollen, mehr Abwechslung verwenden: (sp|fa) ->(sp|SP|fa|FA) usw.

+0

Thank u so much. Es funktioniert, aber ich muss Großbuchstaben zulassen. – Fizzah

+0

Also, verwenden Sie die Groß-und Kleinschreibung-Flag. Was ist deine Umgebung? –

+0

Vielen Dank. Es ist sehr hilfreich – Fizzah