Thread Gewisse Stelle im String ansprechen (6 answers)
Opened by Umut at 2015-10-09 14:20

murphy
 2015-10-09 15:01
#182548 #182548
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Die Syntax der regulären Ausdrücke in Deinem Code ist falsch — lies am besten mal Perldoc:perlretut und Perldoc:perlre.

Generell würde ich reguläre Ausdrücke für Textersetzungen vor allem dann empfehlen, wenn der zu ersetzende Text oder Teile davon bekannt sind, aber nicht wo er steht. Zum Beispiel ersetzt
Code (perl): (dl )
'Hallo sonstwer!' =~ s/\b\w+wer\b/Welt/r

das erste Wort, das auf 'wer' endet durch 'Welt' und gibt 'Hallo Welt!' zurück. Derselbe reguläre Ausdruck würde auch noch mit 'Hallo irgendwer.' oder 'Bis bald sonstwer. Mach's gut!' auf der linken Seite analog funktionieren.

Wenn man hingegen genau weiß, wo Text in einer Zeichenkette steht, aber nicht unbedingt weiß, was dort steht, dann sollte man tendenziell eher indexbasierte Zugriffsmethoden verwenden, insbesondere ist hier natürlich Perldoc:perlfunc substr zu nennen. Zum Beispiel gibt
Code (perl): (dl )
1
2
3
my $msg = 'Hallo X!';
substr($msg, 6, 1) = 'Welt';
say $msg;

den Text Hallo Welt! aus.
When C++ is your hammer, every problem looks like your thumb.

View full thread Gewisse Stelle im String ansprechen