Jan Peters-Anders: Wieder mal Syntax

Hallo,

vor einiger Zeit hatte ich schon mal eine ähnliche Frage und EisFuX hat mir damals sehr geholfen, aber ich habe jetzt ein neues Muster, das ich gerne erklärt hätte. Ich würde gerne dieses Statment:

$sid = ~/^\d+$/;

dazu bringen, dass es mir sowohl Zahlen, als auch Buchstaben bzw. einen Underscore (_) erlaubt. Ich habe schon die folgen Kombinationen für Buchstaben versucht:

$sid = ~/^\d+\D$/;
$sid = ~/^\d+\D+$/;

was beides aber nicht zum Ziel geführt hat. Kann mir jemand helfen?

Danke

Jan

  1. Moin, moin!

    Etwas genauer solltest Du das Problem schon beschreiben. Sollen alle anderen Zeichen aus einer Variablen gelöscht werden oder soll ein Status gesetzt werden, wenn unerlaubte Zeichen enthalten sind oder...

    In jedem Fall wird es mit "= ~" nie klappen, denn der Operator ist "=~" - ohne Leerzeichen.

    Norbert

  2. Hallo,

    $sid = ~/^\d+$/;
    dazu bringen, dass es mir sowohl Zahlen, als auch Buchstaben bzw. einen Underscore (_) erlaubt.

      
    $sid =~ /^\w+$/;  
    
    

    sollte dein Problem lösen.
    \w bedeutet "Alle »Wortzeichen« (alphanumerische Zeichen und _)".

    Markus.

    --
    http://www.apostrophitis.at
    Maschiene währe Standart Gallerie vorraus Packete Objeckte tollerant
    1. Hell-O!

      \w bedeutet "Alle »Wortzeichen« (alphanumerische Zeichen und _)".

      Ggf. sollte unter Verwendung von use locale; die(?) benötigte Locale gesetzt werden, denn davon ist der Inhalt der Zeichenklasse abhängig (siehe perllocale).

      Siechfred

      --
      Hier könnte Ihre Werbung stehen.
      Schöne Wörter, Teil 1 || Geld stinkt nicht
    2. gudn tach!

      [...] sowohl Zahlen, als auch Buchstaben bzw. einen Underscore (_) erlaubt.

      $sid =~ /^\w+$/;

      
      > sollte dein Problem lösen.  
      > \w bedeutet "Alle »Wortzeichen« (alphanumerische Zeichen und \_)".  
        
      ja. mehr und genauere infos gibt's in [perldoc perlre](http://perldoc.perl.org/perlre.html). beachte auch den hinweis zu locale bzw. perllocale, vor allem den abschnitt zu [LC_CTYPE](http://perldoc.perl.org/perllocale.html#Category-LC_CTYPE%3a-Character-Types).  
        
      prost  
      seth
      
  3. Hi,

    vom "=~" und "\w" mal abgesehen:

    $sid = ~/^\d+\D$/;
    $sid = ~/^\d+\D+$/;

    "\D" sind nicht-Ziffern, also alle Zeichen bis auf "\d". Du suchst hier nach mehreren Ziffern, auf die 1.) eine bzw. 2.) mehrere nicht-Ziffern folgen.

    was beides aber nicht zum Ziel geführt hat. Kann mir jemand helfen?

    Du möchtest Dich auch mit Zeichenklassen beschäftigen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes