I am trying to find string which contains characters other than some set of characters. Is there any function available for that ?
for e.g. I want to find strings in which there are characters which is other than a-z or A-Z or _. Any thing other than this would be caught.
Please help.
Check the list of functions, specifically FINDC function
There are also functions for regular expressions, they start with PRX...
Thank you Bruno. I tried to use prxmatch and findc. I am not able to suceed. I am trying to find characters which is not in the list which is making me difficult to achieve this. Its easy to find the characters in the list.
There are a number of possibilities.
The FINDC function, with the 'FK' modifiers, does exactly what you want. It's described at: http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a002264923.htm
F includes A-Z, a-z and underscore in the list of characters and K sets the function to only find characters that AREN'T in that list of characters.
Art, CEO, AnalystFinder.com
something like this
data have; /* Use PRXPARSE to compile the Perl regular expression. */ val ='123abc'; output; val ='bacde_bde'; output; val='abcdef'; output; val='abc-jj'; output; run; data want(drop=patternid); set have; patternID = prxparse('/[^A-Za-z_]+/'); if prxmatch(patternID, val)>0; run;
Thank you all. I am able to do this using findc function.
data want;
set have;
if prxmatch('/\W/', strip(val));
run;
That is what the VERIFY() function does.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.