2017-09-13 113 views
-2

我想写一个脚本在找到匹配字后插入一个字符串行。匹配词有多处出现,但我想在第二次出现时插入。如何在perl中编写脚本?找到匹配项后插入一个字符串行

+2

你的问题是模糊的,缺乏例如你想实现什么,最重要的是显示了从你身边绝对没有努力去解决它。祝你好运。 –

+1

你有什么尝试?你有什么问题?请告诉我们你的代码。如果你没有任何代码,堆栈溢出可能是错误的地方问你的问题。 –

回答

1

鉴于你的问题不清楚你的脚本必须如何动态或静态的是,事实上,你没有给任何的例子,我在这里只举一个简单的解决方案,你指出正确的方向。它会搜索字串,然后在它后面添加一个换行符。它还使用/g开关,因此它将在全局范围内为字符串中的所有string单词执行此操作。

use strict; 
use warnings; 

my $str = "this is my string"; 
    $str=~s/string/string\nAnother string/g; 
    print $str; 

从这里,我建议你把一些精力做一些研究,而不是只期待的一切给予。你似乎是一个Perl初学者,所以搜索谷歌Perl Tutorials初学者,让你开始。

0

希望我理解正确的话,试试如下

您可以使用正则表达式demo

my $s = "Stack is a linear data structure stack follows a particular order in stack the operations are performed"; 
$s=~s/(.*?Stack){3}\K//i; 

或者你可以用SUBSTR尝试也

use warnings; 
use strict; 

my $match_to_insert = 2; #which match you need to insert 
my $f = 1; 

while($s=~m/stack/gi) 
{ 
    substr($s,$+[0],0) = "\n" , last if($f eq $match_to_insert); 
    $f++; 

} 

print "$s\n"; 

$+[0]这将给指数匹配字符串的位置,我使用该索引创建substr函数,并在该位置插入'\ n'。

相关问题