Um zu überprüfen, ob eine Zeichenfolge nur Buchstaben (Unter- / Großbuchstaben), Zahlen und einige Sonderzeichen enthält, können Sie dies überprüfen

484
user3541631

Eine Zeichenfolge, die ich mit dem readFormularbenutzer erhalte, kann Folgendes enthalten:

  • Briefe
  • Zahlen
  • _

Für eine andere Zeichenfolge gelten die gleichen Regeln wie oben und zusätzlich:

  • fängt nur mit Buchstaben an

Ich fange davon an:

if [[ $A = [a-z]* ]] 

aber es prüft, ob die Zeichenfolge mit Kleinbuchstaben beginnt,

0
Setzen Sie am Ende ein $, um das Ende der Zeichenfolge anzuzeigen. Frank Thomas vor 5 Jahren 0

1 Antwort auf die Frage

1
cpilko

Für den ersten Fall sollte dies funktionieren:

if [[ $A = \w+ ]] 

\wmathches ein "Wort" -Zeichen, das den Unterstrich enthält. Möglicherweise erkennt es einige Unicode-Zeichenfolgen, die ungültig sein [A-Za-z0-9\\_]können, und funktioniert möglicherweise besser als \wfür Sie.

Für den zweiten Versuch:

if [[ $A = ^[A-Za-z]\w+ ]]