2017-09-13 112 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'。

相關問題