BookmarkSubscribeRSS Feed
BayzidurRahman
Obsidian | Level 7
pattern_id=prxparse('/\b(DEMENTIA|AD DEM|AD WITH|ADVANCED DEM|ALZH|ALZHEIMER\'S|ALZHEIMERS|DEMEN|DEMENTIA\- ALZH|DEMETIA|DEMENI|BPSD|BPDS|BSPD|BSDP|
DEMENTAI|H\/O DEMENETIA)\b/i'); 

I am using the above code to identify some keywords. One of the keywords (ALZHEIMER'S) has apostrophe " ' " in it. I am trying to mask it by using a preceding backslash as I do for other special characters (such as "-")  but it is not working.

3 REPLIES 3
Kurt_Bremser
Super User

Use double quotes on the outside:

pattern_id=prxparse("/\b(DEMENTIA|AD DEM|AD WITH|ADVANCED DEM|ALZH|ALZHEIMER\'S|ALZHEIMERS|DEMEN|DEMENTIA\- ALZH|DEMETIA|DEMENI|BPSD|BPDS|BSPD|BSDP|
DEMENTAI|H\/O DEMENETIA)\b/i"); 
Tom
Super User Tom
Super User

You problem has nothing to do with REGEX, but with basic syntax of how to construct a string constant.

 

If the character you are using on the outside  to indicate a string constant (either the single quote character, ',  or the double quote character, ") appears in the string then it needs to be doubled up. 

 

So to make a string constant that contains ALZHEIMER'S  you would need to use one of these two methods:

"ALZHEIMER'S"
'ALZHEIMER''S'

In your case you should change the \' to '' instead.

BayzidurRahman
Obsidian | Level 7

Thanks Tom.

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
  • 3 replies
  • 564 views
  • 0 likes
  • 3 in conversation