2017-09-13 2 views
-2

일치하는 단어를 찾은 후 문자열을 삽입하는 스크립트를 작성하고 싶습니다. 성냥 어구가 여러 번 나타나지만 두 번째 어커런스에 삽입하고 싶습니다. 펄에서 스크립트를 작성하는 방법은?일치 항목을 찾은 후 문자열을 삽입하십시오.

+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

희망은이

당신은 당신이 또한

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으로 시도 할 수 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 기능을 만들고있어 그 위치에 '\ n'을 삽입 해요.