2017-04-23 2 views
-1

ich einen regulären Ausdruck erstellen bin versucht, die überprüft, ob eine Eingabe in den folgenden Formaten ist:Überprüfen Sie, ob eine Eingabe in einem bestimmten Format ist

% word word number # % word word number #  - OK 
% word word # % word word # - OK 
% word word word # % word word # - OK 
% # %% word word # - NOT OK 

So zwischen % und # kann es zwischen 1-8 word sein und nur 1 oder keine number, Nummer muss auch am Ende sein. Ich habe nichts dagegen, Leerzeichen zwischen den Symbolen und dem Text oder Zahlen, nur die Wörter zwischen, so %word word#%word word# oder %word word number#%word word# akzeptiert wird, aber %wordword#%wordword# oder %wordwordnumber#%wordwordnumber# ist nicht in Ordnung. Fühlen Sie sich frei, mich etwas zu fragen.

+0

Bitte fügen Sie den regulären Ausdruck, den Sie versucht haben, hinzu? Welche Zeichen sind in einem "Wort" erlaubt? Sind negative, gebrochene Zahlen erlaubt, oder in wissenschaftlicher Notation, oder hex, ... Kann eine gebrochene Zahl mit dem Dezimalpunkt beginnen. Tausende Separatoren? Hauptstädte? Akzentbuchstaben? Griechisch, Arabisch, ... Ich denke, wir können mit Sicherheit sagen, dass diese Frage einige wesentliche Bestandteile nicht enthält. – trincot

+0

Mit Wort meine ich nur englische Hauptstadt, oder Kleinbuchstaben, überhaupt keine Symbole. – nonerth

+1

So etwas wie [das] (https://regex101.com/r/1XDhHy/1)? – trincot

Antwort

1

würde ich diesen regulären Ausdruck vorschlagen, mit i Modifikator es Groß- und Kleinschreibung zu machen:

^(%(\s*[a-z]+){1,8}\s*\d*\s*#\s*){2}$

NB: Der Unterschied zwischen wordword und word word ist überflüssig: es sei denn, dass eine Regel, wenn ein zu bestimmen, Wort endet anders als das Auftreten eines Nicht-Buchstaben (wie ein Leerzeichen), wordword ist nur eine lange word. Das [a-z]+ Muster wird nur alles auf einmal greifen.

+0

Ich verstehe, was Sie sagen, und ist ein gültiger Punkt, es ist nur, dass in meinem Fall ich nichts dagegen habe, denn 'Wort' wird eine bestimmte Zeichenfolge sein und ich weiß, wenn es nicht korrekt ist – nonerth

+0

Also in Ihrem Fall' Wort Wort 'wäre wirklich eine Wiederholung des * gleichen * Wortes? – trincot

+0

Nein, Wort, wird ein String in einem Array von Strings – nonerth

Verwandte Themen