🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 02-14-2020 09:46 AM
(1194 views)
I would like to compress only items in the parenthesis as well as the parenthesis without affecting any place else. The code below gives me
The quick brown fox jumps over lazy dogs. The quick brownfox jumps over the lazy dog.
but what I need is
The quick brown fox jumps over 23 lazy dogs. The quick brown-fox jumps over the lazy dog.
data have;
text = "The quick brown fox jumps over 23 lazy dogs.(1-27) The quick brown-fox jumps over the lazy dog.(28)";
run;
data want;
set have;
text2 = compress(text,"()-1234567890");
run;
I would appreciate some help with this.
Thank you.
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You can try to use a pearl regular expression:
data want;
set have;
text2=prxchange('s/\([\d-]+\)//i', -1, text);
run;
This looks for the pattern \([\d-]+\) in the variable 'text' as many times as needed (second argument = -1)
\([\d-]+\) = a parenthesis followed by one or more digits or hyphens followed by a parenthesis.
3 REPLIES 3
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You can try to use a pearl regular expression:
data want;
set have;
text2=prxchange('s/\([\d-]+\)//i', -1, text);
run;
This looks for the pattern \([\d-]+\) in the variable 'text' as many times as needed (second argument = -1)
\([\d-]+\) = a parenthesis followed by one or more digits or hyphens followed by a parenthesis.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Perfect! Thank you so much this worked.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You're welcome @NewSASPerson !