06-12-2017 12:28 PM
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.
06-12-2017 12:35 PM - edited 06-12-2017 12:36 PM
Check the list of functions, specifically FINDC function
There are also functions for regular expressions, they start with PRX...
06-12-2017 12:41 PM
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.
06-12-2017 12:38 PM - edited 06-12-2017 12:42 PM
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
06-12-2017 12:56 PM - edited 06-12-2017 12:57 PM
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;