Cruz: Wie macht man am besten das erste Zeichen upper case?

Hallo RegExp Experten,

wie macht man eigentlich am besten das allererste Zeichen eines Strings zum upper case?

$string =~ s/^(.)/uc($1)/;

bringt es irgendwie nicht, weil dann am Anfang des Strings tatsächlich "uc(buchstabe)" steht. Ich schätze mal man kann keine Anweisungen in einer RegExp ausführen.
Aber braucht so eine kleine Operation tatsächlich mehr als einen Befehl?

Ich bin sicher, daß es einen kurzen und schmerzlosen Weg gibt. Wer es weiß, bitte hier posten.

Gruß und Dank
Cruz

  1. Hallo RegExp Experten,

    wie macht man eigentlich am besten das allererste Zeichen eines Strings zum upper case?

    $string =~ s/^(.)/uc($1)/;

    bringt es irgendwie nicht, weil dann am Anfang des Strings tatsächlich "uc(buchstabe)" steht. Ich schätze mal man kann keine Anweisungen in einer RegExp ausführen.
    Aber braucht so eine kleine Operation tatsächlich mehr als einen Befehl?

    Ich bin sicher, daß es einen kurzen und schmerzlosen Weg gibt. Wer es weiß, bitte hier posten.

    Gruß und Dank
    Cruz

    Hi Cruz,

    ab Perl 5:

    $string = ucfirst($string);

    Gruss

    Beate Mielke

    1. ab Perl 5:

      $string = ucfirst($string);

      Gruss

      Beate Mielke

      Jau so geht's vielen Dank!

  2. hi!

    wie macht man eigentlich am besten das allererste Zeichen eines Strings zum upper case?
    $string =~ s/^(.)/uc($1)/;
    bringt es irgendwie nicht, weil dann am Anfang des Strings tatsächlich "uc(buchstabe)" steht. Ich schätze
    mal man kann keine Anweisungen in einer RegExp ausführen.

    Die Lösung hast du ja schon von Beate erhalten, aber hier noch eine Anmerkung: Perl-Anweisungen in
    regulären Ausdrücken sind möglich, dazu musst du aber den Parameter "e" mit angeben. Würde aus
    obiger Zeile folgendes machen:
      $string =~ s/^(.)/uc($1)/e;

    bye, Frank!

    1. Perl-Anweisungen in

      regulären Ausdrücken sind möglich, dazu musst du aber den Parameter "e" mit angeben. Würde aus
      obiger Zeile folgendes machen:
        $string =~ s/^(.)/uc($1)/e;

      bye, Frank!

      Cool Danke für den Tipp!

      Ciao
      Cruz