У меня есть строка в Perl:Как вставить строку в другую строку после определенного шаблона строки
X 682.9 X 683.9 X 1.0
Я хочу, чтобы вставить 0.3 0.3
после 682.9
. Требуемый выход:
X 682.9 0.3 0.3 X 683.9 X 1.0
Как это сделать?
У меня есть строка в Perl:Как вставить строку в другую строку после определенного шаблона строки
X 682.9 X 683.9 X 1.0
Я хочу, чтобы вставить 0.3 0.3
после 682.9
. Требуемый выход:
X 682.9 0.3 0.3 X 683.9 X 1.0
Как это сделать?
Мэтт Джейкоб уже дал правильный ответ. Это способ упаковывают вы не знаете длину подстроки, вы можете использовать index
и length
функцию:
my $str = "X 682.9 X 683.9 X 1.0";
my $i = index($str, "682.9") + length "682.9";
substr($str, $i, 0) = " 0.3 0.3";
print $str, "\n";
Выход:
X 682.9 0.3 0.3 X 683.9 X 1.0
Это один из способов сделать это:
my $str = 'X 682.9 X 683.9 X 1.0';
substr($str, 8, 0) = '0.3 0.3 ';
print "$str\n";
Если вы действительно хотите использовать регулярные выражения для какой-то причине, я полагаю, вы могли бы сделать это следующим образом:
$str =~ s/682\.9 /682.9 0.3 0.3 /;
Выход:
X 682.9 0.3 0.3 X 683.9 X 1.0
Попробуйте RegEx замену достаточно для этого
my $string ="X 682.9 X 683.9 X 1.0";
$string =~s/(682\.9)/$1 0.3 0.3/;
print $string;
Нет необходимости в '/ G' или захвата групп, и вы, вероятно, захотите избежать '.':' $ string = ~ s/682 \ .9 /682.9 0.3 0.3 /; ' –
@MattJacob Спасибо за ваш полезный комментарий. Я отредактировал – mkHun
благодаря чему это помогло, так как я не знал длины строки. :-) – rohan
@rohan: Рад, что это помогло! – serenesat