2015-09-16 92 views
0

我正在處理一些RTF代碼生成。我正在使用以下代碼工作正常,但我在PRX函數中效果不佳。簡單的Perl正則表達式SAS

有什麼辦法可以簡化我的代碼嗎?

代碼:

data _null_; 
    length tmptxt $100.; 
    tmptxt="a\b Refer $crossref(Table 1) and $italic.Section $crossref(3.1)$enditalic"; 
    tmptxt=prxchange('s/([\\{}])/\\$1/',-1,tmptxt); 
    tmptxt= prxchange('s/([\$][a-zA-Z]+)([\(])/%$1$2/',-1,tmptxt); 
    tmptxt=prxchange('s/%\$/%/',-1,tmptxt); 
    tmptxt=prxchange('s/([\$][a-zA-Z]+)/&$1$2/',-1,tmptxt); 
    tmptxt=prxchange('s/&\$/&/',-1,tmptxt); 
    put tmptxt; 
run; 

在此先感謝。 Rajaram

+1

我沒有看到合併替代品的方法,因爲替代品在所有替代品中都有所不同。 :( –

+1

在這裏沒有看到'perl'鏈接? – Sobrique

+0

@Sobrique:也許它應該是'pcre'而不是? – choroba

回答

0

不是。有可能是可以對正則表達式進行小的改進,但它不會有真正的影響。

我會保持原樣。