BASE SAS正则表达式:一次对多个变量执行字符串提取

时间:2015-07-24 17:49:43

标签: arrays regex sas

我有一些SAS代码将正则表达式应用于拉出类别ID的URL字符串。

变量看起来像这样:

网址

http://www.mywebsite.com/family/index.jsp?categoryId=61765546&cp=1766205&ab=en_US_MLP_SLOT_1_S1_SHOP

http://www.mywebsite.com/shop/index.jsp?categoryId=62593996&AB=en_US_HP_S2_Men_slot_1_S2_ShopNow

我应用此代码:

data Want;
set have;
category_Id=input(prxchange('s/.+categoryId=(\d+).+/$1/o',-1,URL), 12.);run;

我明白了:

category_Id
61765546
62593996

我实际拥有的数据集有很多网址变量 - URL_1 网址_2> 网址_3 ......等等。最多可以有80个URL变量,也可能是10个。

我需要做的是从所有URL变量中提取类别ID,然后按Campaign_Name转置它们。

数据看起来像这样。

Campaign_Name   URL_1   URL_2   URL_3   URL_4
Summer Campaign http://www.mywebsite.com/family/index.jsp?categoryId=61765546   http://www.mywebsite.com/shop/index.jsp?categoryId=62593996&AB=en_US_HP_S2_Men_slot_1_S2_ShopNow    http://www.mywebsite.com/family/index.jsp?categoryId=62593846&cp=1766205&ab=ln_men_cs_thetrend:tropicalprints   http://www.mywebsite.com/family/index.jsp?categoryId=62594006&cp=1766205

我的最终输出需要如下所示:

 Campaign_Name  category_Id
Summer Campaign 61765546
Summer Campaign 62593996
Summer Campaign 62593846
Summer Campaign 62594006

我假设你会使用数组,但我不确定如何编程。

0 个答案:

没有答案