2009-02-06 24 views

回答

4

宏語言中沒有引號。唯一正在使用的引號字符是&,%等,表示文本應該被解釋爲宏「運算符」。如上文在Carolina的帖子中所示,空白由%str()表示。

5

可以使用%str()(在parens之間有一個空白)來指示此參數的空白。還要小心翻譯......第二個參數是替換字符......但是在TRANWRD中它是相反的。

%macro test ; 
    %let original= translate_this_var ; 
    %let replaceWithThis= %str() ; 
    %let findThis= _ ; 
    %let translated= %sysfunc(translate(&original, &replaceWithThis, &findThis)) ; 
    %put Original: &original ***** TRANSLATEd: &translated ; 
    %mend ; 
    %test; 

    %macro test2 ; 
    %let original= translate_this_var ; 
    %let replaceWithThis= %str() ; 
    %let findThis= _ ; 
    %let tranwrded= %sysfunc(tranwrd(&original, &findThis, &replaceWithThis)) ; 
    %put Original: &original ***** TRANWRDed: &tranwrded ; 
    %mend ; 
    %test2 
3

您可以使用Perl REG前代替,如:

%put ***%sysfunc(prxchange(s/x/ /, -1, abxcdxxf))***; 
/* on log 
***ab cd f*** 
*/ 
相關問題