Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Alkmene
    Themenstarter

    Registriert
    12.2009
    Beiträge
    30

    Nur Buchstaben und Zahlen zulässig in einem String

    Wie kann ich einen String nach Sonderzeichen durchsuchen, bzw umgekehrt prüfen ob in einem String nur Buchstaben(groß/klein) und Ziffern enthalten sind?

  2. #2
    Tokyo Rose
    Registriert
    06.2009
    Beiträge
    67
    in welcher Programmiersprache?
    wenn du z.B. nach dem Ascii code gehst kannst du schon ganz gut Bereiche ausschliessen. D.h. wenn Ascii code zwischen 0 u. 32 (glaub ich) enthalten ist, ist es auf jeden Fall ein Steuerzeichen usw.

  3. #3
    Baldwins roter Pepping Avatar von bezierkurve
    Registriert
    06.2005
    Beiträge
    3.203
    RegEx: ^[a-zA-Z0-9]+$
    „Aber für was ist das gut?“
    — Ingenieur von Advanced Computing Systems Division of IBM zur Erfindung des Mikrochips, 1968

  4. #4
    Alkmene
    Themenstarter

    Registriert
    12.2009
    Beiträge
    30
    Das ganze soll in einem Bash-Skript umgesetzt werden.

  5. #5
    Tokyo Rose
    Registriert
    06.2009
    Beiträge
    67
    na dann ists ja einfach, wie bezierkurve meinte: regular expressions

  6. #6
    Rhode Island Greening Avatar von Steinchen
    Registriert
    04.2010
    Ort
    Saarland
    Beiträge
    472
    Hi,

    es gibt sog. Zeichenklassen in regex. Die Zeichenklasse für Alphanumerisches ist "alnum".

    Wenn du jetzt testen willst ob in einem String auch andere als alphanumerische Zeichen enthalten sind suchst du nach "[^[:alnum:]]".

    Beispiel:

    Code:
    mac:~ steinchen$ echo "123abc=;:" | grep -E '[^[:alnum:]]'
    123abc=;:
    mac:~ steinchen$ echo "123abc" | grep -E '[^[:alnum:]]'
    mac:~ steinchen$
    cu
    They have this game where you put in a dollar and win four quarters! I win every time!

  7. #7
    Charlamowsky Avatar von Rastafari
    Registriert
    03.2005
    Beiträge
    12.966
    RegEx:
    ^[a-zA-Z0-9]+$
    [^[:alnum:]]
    ...
    Ähem. Extended RE (--> "egrep"):
    Code:
    ^[[:alnum:]]+$
    (Und vorher bitte im Zweifelsfall LANG auf die gewünschte Sprache setzen (bzw all die LC_* Umgebungsvariablen). Dann klappts nicht nur mit den deutschen Umlauten, sondern ggf. auch mit dem türkischen "¥". Danke.)

  8. #8
    Alkmene
    Themenstarter

    Registriert
    12.2009
    Beiträge
    30
    Habs nun so gelöst:

    Code:
        var=$(echo "$string" | sed 's/[A-Z/a-z/0-9]//g';)
                if [ "$var" ]; then
                    {
                    # sollte diese nicht Leer sein, ist der name ungültig
                           err_msg="ungültig"
                    }
                    else
      err_msg="gültig"
    }
    fi
                    {

  9. #9
    Rhode Island Greening Avatar von Steinchen
    Registriert
    04.2010
    Ort
    Saarland
    Beiträge
    472
    Zitat Zitat von olnol Beitrag anzeigen
    Habs nun so gelöst:

    Code:
        var=$(echo "$string" | sed 's/[A-Z/a-z/0-9]//g';)
                if [ "$var" ]; then
                    {
                    # sollte diese nicht Leer sein, ist der name ungültig
                           err_msg="ungültig"
                    }
                    else
      err_msg="gültig"
    }
    fi
                    {
    Hi,

    das Variabeln-Testen in der Bash ist immer nicht so der Bringer. Man macht besser ein

    Code:
    [ "${var}x" != "x" ]
    Wenn dann nur ein "x" drinnen steht, dann ist die Variable leer. Weil was ist, wenn sie nicht gesetzt ist o.ä. dann kanns kritisch werden.

    cu
    They have this game where you put in a dollar and win four quarters! I win every time!

  10. #10
    Baldwins roter Pepping Avatar von bezierkurve
    Registriert
    06.2005
    Beiträge
    3.203
    Die Bash kann das auch selbst:
    Code:
    if [[ "$1" =~ ^[a-zA-Z0-9]+$ ]]
    . Beachten.
    „Aber für was ist das gut?“
    — Ingenieur von Advanced Computing Systems Division of IBM zur Erfindung des Mikrochips, 1968

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •