BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
HeidiDT
Quartz | Level 8

Hi All!

I am very new to regex - I am currently busy with an introductory course. But I have a problem where the regex works when I use it in a grep command, but when I translate it into SAS it doesn't work. Please don't leaugh at the very basic example lol, I have attached the input file and here is my code (extracting all lines that contains exactly 3 digits):

 

Grep command (returns the correct 3 lines):

grep -E '^[0-9]{3}$' regex18.txt

 

SAS code (returns 0 rows):

proc import file='/sas/batch/sasdata/users/heididt/regex/ExerciseInputFiles/regex18.txt' out=example replace;
getnames=NO;datarow=1;
run;

data example;
length var2 $8.;
set example;
var2=left(put(var1,8.));
run;

data example_out;
set example;
if prxmatch('/^[0-9]{3}$/',var2);
run;

1 ACCEPTED SOLUTION

Accepted Solutions
Tom
Super User Tom
Super User

SAS only has fixed length character variables.

So your test find find 3 digits will not work since instead of three digits you have 3 digits followed by 5 spaces.

 

You should be able to just add a TRIM() function call.

if prxmatch('/^[0-9]{3}$/',trim(var2));

View solution in original post

2 REPLIES 2
Tom
Super User Tom
Super User

SAS only has fixed length character variables.

So your test find find 3 digits will not work since instead of three digits you have 3 digits followed by 5 spaces.

 

You should be able to just add a TRIM() function call.

if prxmatch('/^[0-9]{3}$/',trim(var2));
HeidiDT
Quartz | Level 8

EXCELLENT - thanks so much!

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 761 views
  • 0 likes
  • 2 in conversation