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.
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");
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.
Thanks Tom.
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.