문자열이 입력되었거나 프로그램에 포함되어 있습니까? 이 백 슬래시 문자 없애 할 수있는 :
그런데
my $path = "S:/2014 March/Test Scenarios/load/2014 March";
, 그것은 파일 및 경로 이름에 공백이하지 않는 것이 좋습니다. 특정 상황에서는 다소 문제가 될 수 있습니다. 그들을 제거 할 수 없다면 이해할 수 있습니다. 당신이 봐야한다
두 가지 :
- 사용 quotemeta 문자열에 인용 특수 문자를 도움이 대체에서 사용하도록 할 수 있습니다. 문자열에 역 슬래시가 있어도
quotemeta
이 문자열을 처리합니다.
- 일치 항목 및 대체 항목에 구분 기호로
/
을 사용할 필요가 없습니다. 대신 다양한 다른 문자로 대체 할 수 있습니다.
이은 모두 동일합니다
$string =~ s($regex)($replace);
$string =~ s[$regex][$replace]; # Not really recommended because `[...]` is a common regex
$string =~ s{$regex}{$replace};
정규 표현식 따옴표와 같은 문자로 이들의 장점 :
이
$string =~ s/$regex/$replace/;
$string =~ s#$regex#$replace#;
$string =~ s|$regex|$replace|;
또한 괄호, 대괄호 또는 중괄호를 사용할 수 있습니다 균형을 유지해야한다는 것입니다. 따라서 내가 가지고 있다면 :
my $string = "I have (parentheses) in my string";
my $regex = "(parentheses}";
my $replace = "{curly braces}";
$string = s($regex)($replace);
print "$string\n"; # Still works. This will be "I have {curly braces} in my string"
내 문자열에 이러한 유형의 문자가 포함되어 있어도 균형이 맞으면 모든 것이 계속 작동합니다. 당신을 위해
: 당신을 위해 일한다
my $Path = 'S:\2014 March\Test Scenarios\load\2014 March';
$nExit = quotemeta $string; #Quotes all meta characters...
$nExit =~ s($sMatchPattern)($sFullReplacementString);
.