Regex Teil suchen, anderen Teil ersetzen
Johann
- perl
Hallo Zusammen
Ich bin nicht sonderlich versiert auf Regex darum bitte ich euch um Hilfe:
Ich habe einen String in folgender Form:
#VALUE "CompileUser", "Administrator"
Ich habe zudem zwei Variablen "$id" und "$value"
nur benötige ich einen Regex der folgendes macht:
Wenn in der Variabel $id "CompileUser" steht, dann muss "Administrator" durch den Inhalt in der Variabel $value ersetzt werden.
Ich hoffe ihr könnt mir helfen!
Gruss,
Johann
Ich habe einen String in folgender Form:
#VALUE "CompileUser", "Administrator"
Ich habe zudem zwei Variablen "$id" und "$value"
nur benötige ich einen Regex der folgendes macht:
Wenn in der Variabel $id "CompileUser" steht, dann muss "Administrator" durch den Inhalt in der Variabel $value ersetzt werden.
Ich hoffe ihr könnt mir helfen!
Freilich.
Was hast du bis jetzt bezüglich
$var eq 'value' and
$string =~ s/search/replace/;
versucht?
mfg Beat
meinst du so:
if($line =~ /$id/){
$line =~ s/#VALUE "$id", "(.+?)"/#VALUE "$id", "$value"/;
}
der Regex stimmt vermutlich nicht, was ist daran falsch?
meinst du so:
if($line =~ /$id/){
$line =~ s/#VALUE "$id", "(.+?)"/#VALUE "$id", "$value"/;
}der Regex stimmt vermutlich nicht, was ist daran falsch?
Was heisst vermutlich? use warnings klärt dich über Syntaxfehler auf
Du kannst das natürlich vereinfachen:
erstens brauchst du ja das, was du einklammerst nicht mehr, warum also Klammern?
anderseits gibt es Dinge die du wieder brauchst:
$line =~ s/(#VALUE\s"$id",\s")(?:[^"]+?)(")/$1$value$2/;
$1 no capt. $2
auf die If Abfrage kann man hier verzichten.
mfg Beat