2016-08-23 7 views
0

ich zur Zeit so etwas wie diesesRegex zu ermöglichen, nur ein Wort von einer URL gefolgt

std::string reg ="^/house/room/section/.*" 

tue ermöglicht dies dem Benutzer eine beliebige Wort nach Abschnitt passieren, die mein Programm aufgreift und uses.However Ich will nur die Benutzer in der Lage sein, in ein Wort keinen Satz nach dem Abschnitt zu setzen. Wie kann ich (. *) Zu etwas ändern, das keinen Platz darin hat. Zum Beispiel

/house/room/section/A1343   ALLOWED 
/house/room/section/A1343 A1002 NOT ALLOWED because a space was found inside the follow up word 

Antwort

1

Sie könnten eine Zeichenklasse verwenden, die Leerzeichen nicht zulässt, etwa so:

[^ ]* 

oder Sie könnten nicht-Leerzeichen angeben:

\S* 
+0

Danke, was wäre, wenn ich auch das Zeichen "/" hinzufügen wollte, also ein Wort, das kein Leerzeichen oder das Zeichen "/" enthält –

+0

In diesem Fall fügen Sie einfach "/" zur Zeichenklasse hinzu : '[^ /] *' Dies entspricht einer beliebigen Anzahl von Zeichen, die kein Leerzeichen oder Schrägstrich sind. – neuronaut

0

Sie diese verwenden können :

"^\b[a-zA-Z0-9_]+\b$"

Es werden nur Buchstaben, Ziffern und das Unterstrichzeichen _ zulässig, da dies die Zeichen sind, die zusammen von Ihrem Gerät als "ein Wort" interpretiert werden.

Verwandte Themen