큰 따옴표에서 이스케이프 시퀀스를 대체하는 방법은 무엇입니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />큰 따옴표로 묶은 문자열에서 리터럴 "이스케이프 문자열"을 대체하는 방법은 무엇입니까? 문제는 JMP가 항상 "이스케이프 시퀀스"를 평가하고 문자 그대로의 문자 표현을 제공하지 않기를 원합니다.
소스 문자열 :
myStr = "C : \ temp \ myfile.csv";
내가 원하는 것 :
myStr = "C : \! \ temp \! \ myfile.csv";
다음 방법은 작동하지 않거나 최소한 로그 창에서 확인하면 나타나지 않습니다. (이상한 점은 로그 창이 항상 평가된다는 것입니다.)
myStr = 대체 (myStr, "\", "\! \"); ==>는 "\! \"을 평가하고 다시 "\"로 변환하므로 작동하지 않습니다.
myStr = 대체 (myStr, "\", "\"|| "!"|| "\"); ==> 이것이 다시 평가되고 나에게 두 번 "\! \"본질적으로 주어지기 때문에 작동하지 않습니다.
어떤 아이디어? --dj
Re : 어떻게 더블 쿼트의 이스케이프 시퀀스를 대체할까요?이스케이프 된 문자를 평가하지 않으려면 이스케이프 자체를 반드시 이스케이프 처리해야합니다.
맞습니다. 로그 출력이 혼란 스러울 수 있습니다. 이 코드를 실행하고 로그와 창에서 문자열을 표시하는 방법을 비교해보십시오.
myStr = "C : \ temp \ myfile.csv" ;
newStr1 = 대용품 ( myStr , "\" , "\! \" ) ;
newStr2 = 대용품 ( myStr , "\" , "\ [\! \] \" ) ; // "이스케이프 이스케이프" "
// 로그는 문자열을 평가합니다. newStr2는 "이스케이프 이스케이프"때문에 로그에서 이상하게 보입니다.
보여 주다 ( newStr1 , newStr2 ) ;
// 그러나 다른 컨텍스트에서는 newStr2가 실제 값을 표시하거나 그렇지 않습니까?
북아 일 = 새창 ( "myStr" , 문자열 상자 ( "새 문자열" , { newStr1 , newStr2 } ) ) ;
Re : 어떻게 더블 쿼트의 이스케이프 시퀀스를 대체할까요?JMP가 없기 때문에 이것을 테스트 할 수는 없지만 두 단계 접근법을 시도합니다.
myStr = 대체 (myStr, "\", "\! \");
myStr = 대체 (myStr, "!", '!');
행운을 빕니다.