我有一个SAS数据集,其中包含单个变量中包含PDF文本的多个观察结果。
我需要用下面的模式解析字符串以便进一步处理。
txt="ABCCXX.DEFG hijkj LMNO = YYYYYYYY"
- XX可以是A-Z(大写)中的任意字符(始终为2个字符)
- YYYYYYYY可以是A-Z(大写)中的任何字符或0到9中的任何数字(最多8个字符,包括数字(如果存在);但可以小于8)
- 提到的其他字符总是相同的(即第一个字符总是A,第二个总是B,依此类推)。
- 字符串结束后总是有一个白色(也许这有助于搜索)。
- 这个字符串可以多次出现。我需要每个出现在一个单独的变量
由于我对PRX函数的知识有限,我只能想出以下方法。显然,它不能处理我上面提到的'b'和'e'。
data want;
set have;
length var8 $200;
search8 = prxparse("/[A][B][C][C][A-Z][A-Z][.][D][E][F][G][\s][h][i][j][k][j][\s][L][M][N][O][\s][=][\s][A-Z][A-Z][A-Z][A-Z][A-Z][A-Z][A-Z][A-Z]/oi");
if prxmatch(search8,txt) then do;
call prxsubstr(search8,txt,start,length);
if start>0 then var8=substr(txt,start,length);
end;
run;
1条答案
按热度按时间igetnqfo1#
当只有一个字符时,不需要
[]
字符类。您需要一个模式,其中
()
捕获组用于提取,{a,b}
用于出现范围。该模式可以通过PRXNEXT
在循环中多次应用。示例:
将日志