Solved
Contributor
Posts: 34

# count the number of most occuring consecutive character in string

Hi! I have a string like this one 'aaccbdaaaccc', and I need to find the character that occurs the most in consecutive order, and how many times it occurs. I thus need two variables as the output. I do not want to consider the caracter 'a'. The answer should be 'c' and '3'. Do anyone have a solution to this? Help is very much appreciated.

Accepted Solutions
Solution
‎03-22-2016 05:33 AM
Super User
Posts: 10,852

## Re: count the number of most occuring consecutive character in string

``````data _null_;
x='aaccbdaaaccc';
length str max_str  \$ 200;
pid=prxparse('/(\w)\1*/');
start=1;
stop=length(x);
max_len=0;
call prxnext(pid,start,stop,x,p,l);
do while(p>0);
str=substr(x,p,l);
len=length(str);
if str not =: 'a' and len gt max_len then do;
max_str=str;
max_len=len;
end;
call prxnext(pid,start,stop,x,p,l);
end;
putlog max_str= max_len= ;
run;``````

All Replies
Super User
Posts: 24,026

## Re: count the number of most occuring consecutive character in string

You've posted this in Enterprise Guide, are you using the query builder or familiar with SAS data steps?

Contributor
Posts: 34

## Re: count the number of most occuring consecutive character in string

I'm writing a data step.
Solution
‎03-22-2016 05:33 AM
Super User
Posts: 10,852

## Re: count the number of most occuring consecutive character in string

``````data _null_;
x='aaccbdaaaccc';
length str max_str  \$ 200;
pid=prxparse('/(\w)\1*/');
start=1;
stop=length(x);
max_len=0;
call prxnext(pid,start,stop,x,p,l);
do while(p>0);
str=substr(x,p,l);
len=length(str);
if str not =: 'a' and len gt max_len then do;
max_str=str;
max_len=len;
end;
call prxnext(pid,start,stop,x,p,l);
end;
putlog max_str= max_len= ;
run;``````
Contributor
Posts: 34

## Re: count the number of most occuring consecutive character in string

This worked fine! Thank you so much for your help!
🔒 This topic is solved and locked.