regex
  • perl
  • 2014-02-19 7 views 0 likes 
    0

    문자열 "dropDownStorePrepare(this,\'hello\')"double quotes(") 만 제거하려고합니다. 이 방법을 시도했지만 작동하지 않습니다. 처음에 있으며 dropDownStorePrepare (,,,)의 종료Perl을 사용하여 바꾸기

    #!/usr/bin/perl 
    use strict; 
    use warnings; 
    my $str = '"store":"dropDownStorePrepare(this,\'hello\')","name":"Rama Rao"'; 
    
    $str =~ s/"dropDownStorePrepare(.*)"/dropDownStorePrepare$1/ig; 
    
    print $str; 
    

    따옴표를 제거하고 따옴표의 나머지 부분은 유지되어야한다.

    참고 : dropDownStorePrepare 함수는 매개 변수를 허용하지 않아야합니다. 누군가가 제발 도와 드릴까요

    ..

    답변

    2

    비 욕심 정규식을 시도

    $str =~ s/"dropDownStorePrepare(.*?)"/dropDownStorePrepare$1/ig; 
    
    +0

    고맙습니다 .. :) 가능한 한 빨리 Accepted Answer로 만들 것입니다 .. –

    +3

    @RamaRaoM 당신은'$ 1 '$ str = ~ s/"(dropDownStorePrepare. *?)"/ $ 1/ig;' –

    +0

    @mpapec 그러나 대소 문자를 정규화하지는 않습니다. (그럴 수도 있고 그렇지 않을 수도 있습니다.) –

    3

    .* 너무 많이 일치하는 것을 당신이있어 즉각적인 문제입니다. 시도해보십시오 :

    $str =~ s/"dropDownStorePrepare(.*?)"/dropDownStorePrepare$1/ig; 
    

    JSON을 구문 분석하려는 것처럼 보입니다. 어쩌면 당신은 당신을 위해 module을 찾아야합니다 ...

    +0

    그 작업 .. Tq –

    관련 문제