2015-10-30 3 views

ответ

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 
+0

благодаря чему это помогло, так как я не знал длины строки. :-) – rohan

+0

@rohan: Рад, что это помогло! – serenesat

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 
-1

Попробуйте RegEx замену достаточно для этого

my $string ="X 682.9 X 683.9 X 1.0"; 
$string =~s/(682\.9)/$1 0.3 0.3/; 
print $string; 
+0

Нет необходимости в '/ G' или захвата групп, и вы, вероятно, захотите избежать '.':' $ string = ~ s/682 \ .9 /682.9 0.3 0.3 /; ' –

+0

@MattJacob Спасибо за ваш полезный комментарий. Я отредактировал – mkHun

Смежные вопросы