2017-09-13 11 views
-2

一致する単語を見つけた後に文字列を挿入するスクリプトを書いてみたい。マッチワードは複数出現していますが、2回目に挿入したいと思います。 perlでスクリプトを書くには?一致するものを見つけた後に文字列を挿入する

+2

あなたの質問は、あなたが達成しようとしているものの例がない、あいまいであり、そのほとんどはあなたの側からそれを解決するための絶対的な努力を示していません。それで幸運。 –

+1

何を試しましたか?あなたはどんな問題を抱えていますか?あなたのコードを教えてください。コードがない場合は、おそらくStack Overflowがあなたの質問に間違った場所です。 –

答えて

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のgoogleを検索してください。

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; 

それともインデックスを与える

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で試すことができますを使用することができます

を次のしてみてください一致する文字列の位置を取得し、そのインデックスでsubstr関数を作成しています。その位置に '\ n'を挿入しています。

関連する問題