<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Comparing two string variables and outputting the difference in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189457#M47851</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want know if there is&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Variable1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable2&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp; 1RED&lt;STRONG style="font-size: 12.727272033691406px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;GORT&lt;/STRONG&gt;STREETMANCHESTER&lt;STRONG style="font-size: 12.727272033691406px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;ON&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;If not.&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Xia Keshan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;

data have;
input var1 : $40. var2 : $40.;
cards;
1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETGORTONMANCHESTER
1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GORTON1REDSTREETMANCHESTER
1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETMANCHESTERGORTON

;
run;
data want;
 set have;
 length var3 $ 40;
 position=find(var2,strip(var1));
 if position then do;
&amp;nbsp;&amp;nbsp; if position eq 1 then var3=substr(var2,length(var1)+1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; var3=substr(var2,1,position-1) ;
 end;
 if not position then do;
&amp;nbsp;&amp;nbsp; do i=2 to length(var1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; one=find(var2,strip(substr(var1,1,i-1))) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; two=find(var2,strip(substr(var1,i))) ; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; if one and two then var3=substr(var2,i,two-i);
&amp;nbsp;&amp;nbsp; end;
 end;
run;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 28 Nov 2014 15:55:52 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2014-11-28T15:55:52Z</dc:date>
    <item>
      <title>Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189451#M47845</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello there. Some help if I may.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have two variables with addresses in (no spaces) some contain counties and some don't and i'm trying to extract the differences with no solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have even tried using proc compare by putting the variables I want to compare into two datasets but to no avail&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;example &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Variable1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable2&lt;/P&gt;&lt;P&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETGORTONMANCHESTER&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Im trying to output GORTON to another variable but cant seem to get it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help greatly appreciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Nov 2014 15:26:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189451#M47845</guid>
      <dc:creator>Stretlow</dc:creator>
      <dc:date>2014-11-27T15:26:09Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189452#M47846</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;TBH I don't see how you are going to achieve that.&amp;nbsp; There is no discernible delimiter, length, or algorithm which can identify street names from places from Cities.&amp;nbsp; Perhaps if you had the tech behind Google maps you might be able to do some good guesses, but even then you would have similar place names/street names in many places.&lt;/P&gt;&lt;P&gt;Go back to where you got the data from and see if there is a delimited version.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Nov 2014 15:30:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189452#M47846</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-11-27T15:30:24Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189453#M47847</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not too interested in the content just the comparison of the strings&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so variable 1 could be&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"thebigbad"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and variable 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"thebigbadwolf"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would want the output to be&amp;nbsp;&amp;nbsp; "wolf"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is that possible&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Nov 2014 15:36:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189453#M47847</guid>
      <dc:creator>Stretlow</dc:creator>
      <dc:date>2014-11-27T15:36:53Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189454#M47848</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Oh, I see.&amp;nbsp; Then tranwrd would probably be helpful here:&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length result $2000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if length(strip(var1)) &amp;gt; length(strip(var2)) then result=tranwrd(var1,var2,"");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tranwrd(var2,var1,"");&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So first check which string is longer, then from the longest string remove any occurrences of the shorter string.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Nov 2014 18:30:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189454#M47848</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-11-27T18:30:13Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189455#M47849</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Below code won't give you 100% what you're after. You need to test it with your real data and then decide whether you only will remove sub-strings where at least the first n-characters match. &lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;For this the generated regex would then need to look something like 1RED?S?....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The code will be quite resource hungry as for every single iteration of the data step two regular expressions need to be compiled.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope someone else comes up with another more straightforward approach. I don't believe that a simple tranwrd() will cut it though.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have /*(drop=_:)*/;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length variable1 variable2 result _short _long $ 100 _prx_string $ 200;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Variable1='1REDSTREETMANCHESTER';&lt;/P&gt;&lt;P&gt;&amp;nbsp; Variable2='1REDSTREETGORTONMANCHESTER';&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if lengthn(variable1) &amp;lt; lengthn(variable2) then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _short=variable1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _long =variable2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _short=variable2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _long =variable1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* remove string from beginning */&lt;/P&gt;&lt;P&gt;&amp;nbsp; _prx_string=prxchange('s/(.)/\1?/o',-1,strip(_short));&lt;/P&gt;&lt;P&gt;&amp;nbsp; _prx_string=cats("s/",_prx_string,"//oi");&lt;/P&gt;&lt;P&gt;&amp;nbsp; _prx_id=prxparse(strip(_prx_string));&lt;/P&gt;&lt;P&gt;&amp;nbsp; result=prxchange(_prx_id,1,strip(_long));&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* free up memory */&lt;/P&gt;&lt;P&gt;&amp;nbsp; call prxfree(_prx_id);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* remove string from end */&lt;/P&gt;&lt;P&gt;&amp;nbsp; _prx_string=prxchange('s/(.)/\1?/o',-1,reverse(strip(_short)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; _prx_string=cats("s/",_prx_string,"//oi");&lt;/P&gt;&lt;P&gt;&amp;nbsp; _prx_id=prxparse(strip(_prx_string));&lt;/P&gt;&lt;P&gt;&amp;nbsp; result=prxchange(_prx_id,1,reverse(strip(result)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* free up memory */&lt;/P&gt;&lt;P&gt;&amp;nbsp; call prxfree(_prx_id);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* get result string into right order */&lt;/P&gt;&lt;P&gt;&amp;nbsp; result=reverse(strip(result));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; stop;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Nov 2014 21:30:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189455#M47849</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-11-27T21:30:33Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189456#M47850</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The sample code below assumes that the beginning of the two strings is the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Maybe this will help or at least provide a start.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV style="font-family: Courier New; font-size: 11pt;"&gt;&lt;STRONG style="color: #000080; background-color: #ffffff;"&gt;data&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; want;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;infile&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;cards&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;dlm&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #800080; background-color: #ffffff;"&gt;","&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var1 : &lt;/SPAN&gt;&lt;SPAN style="color: #008080; background-color: #ffffff;"&gt;$64.&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var2 : &lt;/SPAN&gt;&lt;SPAN style="color: #008080; background-color: #ffffff;"&gt;$64.&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; ;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;length&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; result $ &lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;64&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; loopLen = max( length(var1), length(var2) );&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000; background-color: #ffffff;"&gt;*&lt;BR /&gt;&amp;nbsp; * compare varying length if there is a nonmatch&lt;BR /&gt;&amp;nbsp; * end loop&lt;BR /&gt;&amp;nbsp; *;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; &lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; i = &lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;1&lt;/STRONG&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;to&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; loopLen;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp; substr(var1, &lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;1&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;, i) ne&amp;nbsp; substr(var2, &lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;1&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;, i) &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;then&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;do&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;leave&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;end&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;end&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000; background-color: #ffffff;"&gt;*&lt;BR /&gt;&amp;nbsp; * fill remaining vars&lt;BR /&gt;&amp;nbsp; *;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; remain1 = substr(var1, i);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp; remain2 = substr(var2, i);&lt;BR /&gt;&amp;nbsp; lr1 = lengthn(remain1);&lt;BR /&gt;&amp;nbsp; lr2 = lengthn(remain2);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp; lr1 &amp;gt; &lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;1&lt;/STRONG&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;and&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; lr1 &amp;lt; lr2 &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;then&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;do&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = tranwrd(remain2, strip(remain1), &lt;/SPAN&gt;&lt;SPAN style="color: #800080; background-color: #ffffff;"&gt;""&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;end&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;else&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;do&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = remain2;&lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;end&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;cards&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffc0;"&gt;thebigbad,thebigbadwolf&lt;BR /&gt;1REDSTREETMANCHESTER,1REDSTREETGORTONMANCHESTER&lt;BR /&gt;ab1234,abcöäü1234&lt;BR /&gt;abc,abc&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Nov 2014 21:36:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189456#M47850</guid>
      <dc:creator>BrunoMueller</dc:creator>
      <dc:date>2014-11-27T21:36:37Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189457#M47851</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want know if there is&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Variable1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable2&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp; 1RED&lt;STRONG style="font-size: 12.727272033691406px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;GORT&lt;/STRONG&gt;STREETMANCHESTER&lt;STRONG style="font-size: 12.727272033691406px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;ON&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;If not.&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12.727272033691406px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Xia Keshan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;

data have;
input var1 : $40. var2 : $40.;
cards;
1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETGORTONMANCHESTER
1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GORTON1REDSTREETMANCHESTER
1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETMANCHESTERGORTON

;
run;
data want;
 set have;
 length var3 $ 40;
 position=find(var2,strip(var1));
 if position then do;
&amp;nbsp;&amp;nbsp; if position eq 1 then var3=substr(var2,length(var1)+1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; var3=substr(var2,1,position-1) ;
 end;
 if not position then do;
&amp;nbsp;&amp;nbsp; do i=2 to length(var1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; one=find(var2,strip(substr(var1,1,i-1))) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; two=find(var2,strip(substr(var1,i))) ; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; if one and two then var3=substr(var2,i,two-i);
&amp;nbsp;&amp;nbsp; end;
 end;
run;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Nov 2014 15:55:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189457#M47851</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-11-28T15:55:52Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189458#M47852</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Similar to Bruno's proposal but works also when difference is at beginning:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data have;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;length str1 str2 $64;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;input str1 str2; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;datalines;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;thebigbad thebigbadwolf&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1REDSTREETMANCHESTER 1REDSTREETGORTONMANCHESTER&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ab1234 abcöäü1234&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;abc abc&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;abc wolfabc&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data want;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;length short long diff $64;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;set have;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;if length(str1)&amp;lt;length(str2) then do;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; short=str1; long=str2; end;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;else do;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; short=str2; long=str1; end;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;do i = 1 to length(short);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if char(short, i) ne char(long, i) then leave; end;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;do j = 1 to length(short);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if char(short, length(short)-j+1) ne char(long, length(long)-j+1) then leave; end;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;if i &amp;lt;= length(long) - j + 1 then &lt;/STRONG&gt;&lt;STRONG style="font-size: 10pt; line-height: 1.5em;"&gt;diff = substr(long, i, length(long) - j + 1 - i + 1);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;drop short long i j;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc print data=want noobs; var str1 str2 diff; run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #0000ff; font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; diff&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #0000ff; font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; thebigbad&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; thebigbadwolf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wolf&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #0000ff; font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETGORTONMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp; GORTON&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #0000ff; font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ab1234&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; abcöäü1234&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cöäü&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #0000ff; font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; abc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; abc&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #0000ff; font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; abc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wolfabc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wolf&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Nov 2014 17:10:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189458#M47852</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2014-11-28T17:10:09Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189459#M47853</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;And here another coding option using the compare() function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;data have;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; input var1 : $40. var2 : $40.;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; length result $40;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; if lengthn(var1) &amp;lt; lengthn(var2) then&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _short=var1;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _long =var2;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; else&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _short=var2;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _long =var1;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; _pos=compare(_short, _long,'i:');&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; result=substrn(_long,abs(_pos));&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; result=reverse(strip(result));&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; _short=reverse(strip(_short));&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; _pos=compare(_short,result,'i:');&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; result=substrn(result,abs(_pos));&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; result=reverse(strip(result));&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETGORTONMANCHESTER&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;1REDSTREETGORTONMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETMANCHESTER&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GORTON1REDSTREETMANCHESTER&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETMANCHESTERGORTON&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #575757; background-color: #ffffff;"&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Nov 2014 04:05:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189459#M47853</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-11-29T04:05:04Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189460#M47854</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;How to remove the difference from the variable2?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ex:&lt;/P&gt;&lt;P&gt;var1="world cup"&lt;/P&gt;&lt;P&gt;var2="Woorlld ccup"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i want to make var2 as var1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards &lt;/P&gt;&lt;P&gt;Karthik.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Dec 2014 14:38:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189460#M47854</guid>
      <dc:creator>KarthikSrivasthav</dc:creator>
      <dc:date>2014-12-05T14:38:50Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189461#M47855</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How do you know "Woorld ccup" = "world cup"?&amp;nbsp; Could it not be "world coup"?&amp;nbsp; This is called data cleaning.&amp;nbsp; Produce a list of distinct values, then clean those which do not match.&amp;nbsp; E.g.:&lt;/P&gt;&lt;P&gt;data coded;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; category="world cup"; values="Woorlld cup"; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values="world cup"; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values="Cup of Worlds"; output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.VAR1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.VAR2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B.CATEGORY&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HAVE A&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; left join CODED B&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.VAR2=VALUES;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Dec 2014 15:05:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189461#M47855</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-12-05T15:05:30Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189462#M47856</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For non trivial spelling problems like that, look at the spelling distance functions in SAS : COMPGED, COMPLEV, SPEDIS, and also SOUNDEX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Dec 2014 15:55:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189462#M47856</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2014-12-05T15:55:07Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189463#M47857</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A __default_attr="12296" __jive_macro_name="user" class="jive_macro jive_macro_user" data-objecttype="3" href="https://communities.sas.com/"&gt;&lt;/A&gt;: First, thanks for teaching me about a function I wasn't aware of. I never originally responded to this question, as I had misunderstood the requirements and was looking for a solution that identified everything that was different between two strings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, that was too complicated without the compare function, and I quickly realized that I had misunderstood the requirements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regardless, the following accomplishes both the requirements and my original interpretation of the problem. It only looks for characters in the 2nd string that aren't present in the 1st string, as that was the OP's need. However, like you did, it wouldn't be hard at all to change the code to be able to go both ways:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input var1 : $40. var2 : $40.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETGORTONMANCHESTER&lt;/P&gt;&lt;P&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETxxMANCHESTER&lt;/P&gt;&lt;P&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GORTON1REDSTREETMANCHESTER&lt;/P&gt;&lt;P&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETMANCHESTERGORTON&lt;/P&gt;&lt;P&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDGSTROEETMANRCHETOSTERN&lt;/P&gt;&lt;P&gt;1REDSTREETMANCHESTER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1REDSTREETMANCHESTER&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (drop=_:);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length extra $40;&lt;/P&gt;&lt;P&gt;&amp;nbsp; _right=var2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do while (compare(var1, _right,'il') ne 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if abs(compare(var1, _right,'il')) eq 1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extra=catt(extra,substr(_right,1,1));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _right=substr(_right,2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extra=catt(extra,substr(_right,abs(compare(var1, _right,'il')),1));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _right=catt(substr(_right,1,abs(compare(var1, _right,'il'))-1),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; substr(_right,abs(compare(var1, _right,'il'))+1));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Dec 2014 19:16:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189463#M47857</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2014-12-05T19:16:27Z</dc:date>
    </item>
    <item>
      <title>Re: Comparing two string variables and outputting the difference</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189464#M47858</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A __default_attr="149594" __jive_macro_name="user" class="jive_macro jive_macro_user" href="https://communities.sas.com/"&gt;&lt;/A&gt; I'm so spoiled by the richness of the SAS language that I just couldn't believe that there is no function which does the job for me. So I "scanned" through the docu, got reminded of a lot of good stuff and then also found compare().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I hope that future SAS releases will spoil me even further and add "startpos" as a parameter to allow for a comparison in reverse order if set to "-1".&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Dec 2014 19:37:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Comparing-two-string-variables-and-outputting-the-difference/m-p/189464#M47858</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-12-05T19:37:53Z</dc:date>
    </item>
  </channel>
</rss>

