Chrisi: Perl Regex Problem

Hallo zusammen,

ich bin einfach zu blöd um eine einfache Regex zu bauen die mir:

hdd=1024

durch

hdd=2048

ersetzt. Meine Regex sieht so aus:

s/{hdd=\d}/hdd=$CNF{'NEUERWERT'}/g;

Nur irgendwie klappt das nicht :-)

Meine Strings sind immer so aufgebaut:

hdd=ZAHL

memory=ZAHL

swap=ZAHL

Ich will eigentlich nur die Zahl hinter dem = ersetzen ...

Kann mir da jemand einen Tipp geben?

Danke und Grüße
Chrisi

  1. Liebe(r) Chrisi,

    s/{hdd=\d}/hdd=$CNF{'NEUERWERT'}/g;

    ich habe nie "geperlt", aber dieses \d gibt nur eine einzige Ziffer zurück. Versuche einmal das hier:

    s/{hdd=\d+}/hdd=$CNF{'NEUERWERT'}/g;

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hi Felix,

      danke für den Tipp, das klappt so prima. Manchmal ist man aber auch blöde :-)

      Gruß
      Chrisi

      1. gudn tach!

        danke für den Tipp, das klappt so prima.

        ...was ich ehrlich gesagt nicht glaube.

        die braces (geschweifte klammern) werden hier literal verstanden, da eine interpretation als meta-character keinen sinn machen wuerde.

        /{hdd=\d+}/

        matcht also z.b. "{hdd=100}" aber nicht "hdd=100". ein vorgegebenes beispiel lautete aber
         # hdd=ZAHL
        und da dort keine braces sind, wuerde auch nichts gematcht.

        prost
        seth