gudn tach!
Dass ich keine Programmiersprache genannt habe, liegt daran, dass die Ersetzung unabhängig von der Programmiersprache gemacht werden soll. (auch wenn die Regex-Implementierung teilweise selbst abhängig von der Sprache sind, aber naja)
da in allen sprachen, die regexp koennen, vermutlich auch for-schleifen existieren und die laenge eines strings oder ein teilstring leicht eruiert werden kann, sollte ebenfalls halbwegs sprachenunabhaengig (hier jetzt in perl-syntax), aber halt nicht mehr regexp-only das gehen, was Matthias vorschlug:
je nach vorgabe, ob in-place:
$numPadChar = 10 - length $str;
$str .= '#' for 1..$numPadChar;
oder (ueber substrings)
$str .= substr($str.'##########', 0, 10);
oder nicht-in-place:
$new_str = $str;
$new_str .= '#' for 1..(10 - length $str);
(speziell in perl wuerde ich es das problem noch mal anders loesen:
$str .= '#' x (10 - length $str);
~~~)
> MudGuard hat ja schon eine Lösung genannt. Die ist so einfach, ich wundere mich, dass ich nicht selbst darauf gekommen bin.
vermutlich, weil du es in \_einem\_ ausdruck loesen wolltest.
> Was ich mich jetzt nur noch frage ist, ob das vielleicht auch mit einem einzigen Regex gesteht statt 2 Stück hintereinander.
ich vermute, dass das nur gemogelt geht, z.b. so:
~~~perl
s/^(.*)\K$/'#' x (10 - length $1)/e;
oder wie oben per substrings:
s/^(.*)\K$/substring('###########', 0, 10 - length $1)/e;
prost
seth