Hello! I would like to derive "1514#0_2021Q3_2022Q1$" substring from the following string: 1514#0 Deep Dive$ 1514#0_2021Q3_2022Q1$ 1515#0 Deep Dive$ 1515#0_2021Q1_2022Q1$ XYZ$ Dictionary$ The following conditions need to be met: 1) the substring has at least one "Q" letter, 2) substrings in the list are ordered randomly. I have used the following pattern, but it fell short: /1514.*?Q.*?\$?/i Please see the code for your reference: %macro prxsubstr(pattern, string);
%let regex_id = %sysfunc(prxparse(&pattern.));
%let position = 0;
%let length = 0;
%syscall prxsubstr(regex_id, string, position, length);
%global substring;
%let substring = %substr(&string., &position., &length.);
%put &substring.;
%mend;
%let pattern = /1514.*?Q.*?\$?/i;
%let list = 1514#0 Deep Dive$ 1514#0_2021Q3_2022Q1$ 1515#0 Deep Dive$ 1515#0_2021Q1_2022Q1$ ARS_CRS KPI Results$ Dictionary$;
%prxsubstr(&pattern., &list.); Any help will be appreciated.
... View more