Одно процентное значение (или ни одного) можно извлечь из строки, используя шаблон с выражением группировки (<something>)
, prxmatch
и prxposn
, чтобы извлечь символы, соответствующие сгруппированному выражению.
Пример:
Предполагается, что процент представляет собой целое число, за которым сразу следует знак процента.
Сохраните процент в виде дроби (предположительно в диапазоне от 0 до 1), значение которой равноотформатирован для отображения в процентах.
data have;
input;
line = _infile_;
datalines;
Eg 1.
Our commission is 25% for next order
Eg2.
20% is applied for previous order
run;
data want;
set have;
/* pattern for finding and capturing a whole number that is followed by a percent sign */
rx = prxparse('/(\d+)%/');
if prxmatch(rx,line) then do;
matched_digits = prxposn(rx, 1, line);
fraction = input(matched_digits, 12.) / 100;
end;
format fraction percent5.;
run;