看了之前巴黎前辈用正则表达式匹配中文地址,发现前辈用的中文匹配的代码我电脑不支持,我自己试着写了下:发现还是不太对:
data test;
input name $32.;
cards;
嘉兴 南湖新区 凤桥镇 凤凰路 西侧
青岛 崂山区 万华小区 万航渡路 1523弄
新疆 天山区 南丹东路 18号
北京 朝阳区 近斜土路
虹桥路 693弄
番禺路 998号
南光大楼 白玉路 176弄
虹桥路 996弄
宛平南路 734号
;
run;
data zhengze;
set test;
length city $4. re $8. road $8. num$6.;
keep city re road num;
if _n_=1 then
re1 = prxparse('/([\xa1-\xff]+),([\xa1-\xff]+),([\xa1-\xff]+),([\xa1-\xff]+)/');
if prxmatch(re1,name) then
do;
city=prxposn(re1,1,name);
re=prxposn(re1,2,name);
road=prxposn(re1,3,name);
num=prxposn(re1,4,name);
end;
run;