So prüfen Sie den optionalen Leerzeichen mit regex

Ich versuche, einen regex zu entsprechen, wird eine Zeichenfolge mit Zeichen, ob oder nicht es ist ein Leerraum zwischen Ihnen. Zum Beispiel, ich möchte es zu entsprechen, wenn es ABC, aber auch A BC, A B C oder AB C. Ich habe versucht zu tun, so etwas wie A\s?B\s?C\s?, aber es funktioniert nicht und ich bin offensichtlich etwas falsch. Konnte ich einen regex-Ausdruck für jede Möglichkeit aber das würde mess up mein code und ich würde gerne vermeiden, dass. Wenn jemand könnte mich in die richtige Richtung, ich würde es zu schätzen wissen.

  • Was die regex-engine?
  • Haben Sie versucht, mit ([a-z] ?) im Ort [a-z]?
  • ja, habe ich, zu tun, dass der nur passt, wenn die Zeichen und Leerzeichen eingefügt werden, zum Beispiel Ein(\s ?) passt nur für A_ und a nicht.
  • Kommt wohl auf den Motor, da @CodeGnome gefragt. Zum Beispiel hier: regex101.com ich kann mit dem Ausdruck ([a-z] ?)+ zu entsprechen, wird der gesamte string "he l l oworl d"
  • Tut mir Leid, konnte ich nicht sagen. Es ist für eine automoderator auf reddit, aber ich vermute, es ist mit Javascript, denn ich verwende eine Javascript-online-tester zum test der expression.
  • Auch, versuchen Sie mit einem einzelnen Leerzeichen ` ` oder auch tabs und newlines?
  • Wenn Sie einfügen, wird der reguläre Ausdruck mit einem string zwischen doppelten Anführungszeichen stehen, müssen Sie die Flucht der umgekehrte Schrägstriche: "A\\s?B\\s?C\\s?"
  • nur ein einzelnes Leerzeichen, keine Tabulatoren oder Zeilenumbrüche. Ich könnte auch prüfen wollen, für eine beliebige Anzahl von whitespace-Zeichen. Halten Sie im Verstand, dass dieses Wesen als einen Obszönitäten-filter und Leute wie Wege zu finden, um ihn herum.
  • Dann verwenden Sie ` ` anstelle von \s. Auch auf die Vermeidung von tailing Räume etwas wie ([a-z] ?)*[a-z]).
  • Wenn der string immer beginnt und endet mit einem Zeichen, Sie müssen nur sorgen über das, was in der Mitte: so etwas sollte es tun [a-z][a-z ]{2,}[a-z] - beginnen Sie mit einem Buchstaben, enden mit einem Zeichen und suchen Sie nach zwei oder mehr Zeichen zwischen (einschließlich Leerzeichen).
  • aber das es ermöglicht Sequenzen von Leerzeichen, wie a b, aber ich denke, die OP hat nicht den Wunsch, dass.
  • der OP hat angegeben, nur einem einzigen whitespace - wenn es also 2 Zeichen zwischen dem ersten und letzten, man muss kein Raum.
  • Ja, gut, wie aus Ihrem akzeptierten Antworten, diese Frage war nicht klar, auf alle. Das nächste mal geben Beispiele für die erwartete Eingabe und Ausgabe.

InformationsquelleAutor LTClipp | 2015-11-04
Schreibe einen Kommentar