<?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 separate the city with a company name based on PRXMATCH function in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556533#M155021</link>
    <description>&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;I expect to separate the city name with a company name based on PRXMATCH function.&lt;/P&gt;&lt;P&gt;for example,&lt;/P&gt;&lt;PRE&gt;data HAVE;&lt;BR /&gt;input name &amp;amp;:$300.;&lt;BR /&gt;infile datalines missover;&lt;BR /&gt;datalines;&lt;BR /&gt;AAA LTD., NEW YORK&lt;BR /&gt;AAA LTD, NEW YORK&lt;BR /&gt;AAA L.T.D. LONDON&lt;BR /&gt;AAA LTD. CO., TOKYO&lt;BR /&gt;AAA CO.,LTD. TOKYO&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/PRE&gt;&lt;P&gt;and get the following result.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;name&lt;/TD&gt;&lt;TD&gt;name_B&lt;/TD&gt;&lt;TD&gt;address&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA LTD., NEW YORK&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;NEW YORK&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA LTD, NEW YORK&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;NEW YORK&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA L.T.D. LONDON&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;LONDON&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA LTD. CO., TOKYO&lt;/TD&gt;&lt;TD&gt;AAA LTD CO&lt;/TD&gt;&lt;TD&gt;TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA CO.,LTD. TOKYO&lt;/TD&gt;&lt;TD&gt;AAA CO LTD&lt;/TD&gt;&lt;TD&gt;TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Could you please give me some suggestions about this?&lt;/P&gt;&lt;P&gt;thanks in advance.&lt;/P&gt;</description>
    <pubDate>Mon, 06 May 2019 19:28:22 GMT</pubDate>
    <dc:creator>Alexxxxxxx</dc:creator>
    <dc:date>2019-05-06T19:28:22Z</dc:date>
    <item>
      <title>separate the city with a company name based on PRXMATCH function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556533#M155021</link>
      <description>&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;I expect to separate the city name with a company name based on PRXMATCH function.&lt;/P&gt;&lt;P&gt;for example,&lt;/P&gt;&lt;PRE&gt;data HAVE;&lt;BR /&gt;input name &amp;amp;:$300.;&lt;BR /&gt;infile datalines missover;&lt;BR /&gt;datalines;&lt;BR /&gt;AAA LTD., NEW YORK&lt;BR /&gt;AAA LTD, NEW YORK&lt;BR /&gt;AAA L.T.D. LONDON&lt;BR /&gt;AAA LTD. CO., TOKYO&lt;BR /&gt;AAA CO.,LTD. TOKYO&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/PRE&gt;&lt;P&gt;and get the following result.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;name&lt;/TD&gt;&lt;TD&gt;name_B&lt;/TD&gt;&lt;TD&gt;address&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA LTD., NEW YORK&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;NEW YORK&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA LTD, NEW YORK&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;NEW YORK&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA L.T.D. LONDON&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;LONDON&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA LTD. CO., TOKYO&lt;/TD&gt;&lt;TD&gt;AAA LTD CO&lt;/TD&gt;&lt;TD&gt;TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AAA CO.,LTD. TOKYO&lt;/TD&gt;&lt;TD&gt;AAA CO LTD&lt;/TD&gt;&lt;TD&gt;TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Could you please give me some suggestions about this?&lt;/P&gt;&lt;P&gt;thanks in advance.&lt;/P&gt;</description>
      <pubDate>Mon, 06 May 2019 19:28:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556533#M155021</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-05-06T19:28:22Z</dc:date>
    </item>
    <item>
      <title>separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556646#M155136</link>
      <description>&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I expect to create a list of company suffix (such as 'LTD', 'CO.,','COMPANY') and then separate the 'name' variable into two new variables, the first is 'name_B' variable and the second named as 'address'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The 'address' variable is the strings following the company suffix. If the 'name' variable includes two different company suffix( such as 'CO,' and 'LTD', two observations should be created.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for example for table A&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;no&lt;/TD&gt;&lt;TD&gt;name&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;AAA LTD., NEW YORK&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;AAA LTD, NEW YORK&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;AAA LTD. LONDON&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;AAA LTD. CO., TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;AAA CO.,LTD. TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;I expect to get&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;no&lt;/TD&gt;&lt;TD&gt;name&lt;/TD&gt;&lt;TD&gt;name_B&lt;/TD&gt;&lt;TD&gt;address&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;AAA LTD., NEW YORK&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;NEW YORK&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;AAA LTD, NEW YORK&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;NEW YORK&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;AAA LTD. LONDON&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;LONDON&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;AAA LTD. CO., TOKYO&lt;/TD&gt;&lt;TD&gt;AAA LTD&lt;/TD&gt;&lt;TD&gt;CO., TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;AAA LTD. CO., TOKYO&lt;/TD&gt;&lt;TD&gt;AAA LTD. CO&lt;/TD&gt;&lt;TD&gt;TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;AAA CO.,LTD. TOKYO&lt;/TD&gt;&lt;TD&gt;AAA CO&lt;/TD&gt;&lt;TD&gt;LTD. TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;AAA CO.,LTD. TOKYO&lt;/TD&gt;&lt;TD&gt;AAA CO.,LTD&lt;/TD&gt;&lt;TD&gt;TOKYO&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Could you please give me some suggestion about this? thank in advance.&lt;/P&gt;</description>
      <pubDate>Tue, 07 May 2019 03:14:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556646#M155136</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-05-07T03:14:14Z</dc:date>
    </item>
    <item>
      <title>Re: separate the city with a company name based on PRXMATCH function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556657#M155085</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/262815"&gt;@Alexxxxxxx&lt;/a&gt;&amp;nbsp;&amp;nbsp;What have you learnt?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WANT;
  set HAVE;
  NAME1=prxchange('s/( ?,?L ?\.? ?T ?\.? ?D ?\.? ?,?)/ LTD /'     ,1,NAME );
  NAME2=prxchange('s/( ?,?C ?\.? ?O ?\.? ?,?)/ CO /'              ,1,NAME1);
  NAME3=prxchange('s/(.*)( CO LTD | LTD CO | LTD | CO )(.*)/$1$2/',1,NAME2);
  NAME4=prxchange('s/(.*)( CO LTD | LTD CO | LTD | CO ) *(.*)/$3/',1,NAME2);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;&lt;BR /&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l header" scope="col"&gt;NAME3&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;NAME4&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;AAA LTD&lt;/TD&gt;
&lt;TD class="l data"&gt;NEW YORK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;AAA LTD&lt;/TD&gt;
&lt;TD class="l data"&gt;NEW YORK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;AAA LTD&lt;/TD&gt;
&lt;TD class="l data"&gt;LONDON&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;AAA LTD CO&lt;/TD&gt;
&lt;TD class="l data"&gt;TOKYO&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;AAA CO LTD&lt;/TD&gt;
&lt;TD class="l data"&gt;TOKYO&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 07 May 2019 04:09:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556657#M155085</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-07T04:09:57Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556661#M155137</link>
      <description>&lt;P&gt;Do not ask the same question twice.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Marked as spam.&lt;/P&gt;</description>
      <pubDate>Tue, 07 May 2019 04:25:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556661#M155137</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-07T04:25:47Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556974#M155217</link>
      <description>&lt;P&gt;Dear CHrisNZ,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for your suggestion.your code works well for this question. however, it works not very well when it was run in my real data, it is a large dataset, which includes a lot of different company suffixes(such as INC, PLC), punctations (such as (3M CO)). so I think I should process them step by step. and the first step of them is to just split the city name from the old variable. That is why I post a new question.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;they are actually not the same, because, for the new question, I just expect to separate them one by one. Could you please give me some suggestion about this? thanks very much.&lt;/P&gt;</description>
      <pubDate>Tue, 07 May 2019 23:10:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556974#M155217</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-05-07T23:10:43Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556975#M155218</link>
      <description>&lt;P&gt;The first step should be to clean your data: standardise the case, abbreviations, punctuation, spacing, brackets, etc.&lt;/P&gt;
&lt;P&gt;Parsing comes next.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 07 May 2019 23:21:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556975#M155218</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-07T23:21:40Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556978#M155221</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I really appreciate your code and running it like below,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%MACRO CompnayNameM(no=,Company_name=);
data step9.Patstat_total_hrm_Step22;
Set step9.Patstat_total_hrm_Step22;
&amp;amp;Company_name._S22=&amp;amp;Company_name._S21;		
&amp;amp;Company_name._S22=cat(' ', &amp;amp;Company_name._S22,' ');	
&amp;amp;Company_name._S221=prxchange('s/( LTD[^\w\d]+CO[^\w\d]* | CO[^\w\d]+LTD[^\w\d]* )/ CO LTD /',1,&amp;amp;Company_name._S221 );
&amp;amp;Company_name._S221=prxchange('s/( ,?L ?\.? ?T ?\.? ?D ?\.? ?,? | [^\w\d]*LIMITED[^\w\d]* | [^\w\d]*LTD[^\w\d]* )/ LTD /',1,&amp;amp;Company_name._S221 );
&amp;amp;Company_name._S221=prxchange('s/( ,?C ?\.? ?O ?\.? ?,? | [^\w\d]*CO[^\w\d]* | [^\w\d]*COMPA(N|M)Y[^\w\d]* ) / CO /',1,&amp;amp;Company_name._S221);
&amp;amp;Company_name._S221=prxchange('s/( LTD +CO | CO +LTD )/ CO LTD /',1,&amp;amp;Company_name._S221);

if &amp;amp;Company_name._S221 ne &amp;amp;Company_name._S22 then do;
&amp;amp;Company_name._B=prxchange('s/(.*)( CO LTD | LTD | CO )(.*)/$1$2/',1,&amp;amp;Company_name._S221);
&amp;amp;Company_name._address=prxchange('s/(.*)( CO LTD | LTD | CO ) *(.*)/$3/',1,&amp;amp;Company_name._S221);
end;
run;

%MEND CompnayNameM;
%CompnayNameM(no=1,Company_name=HRM_L2)
%CompnayNameM(no=2,Company_name=PERSON_NAME)
Run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;however, the value like&amp;nbsp;'3M COMPANY (MINNESOTA MINING AND MANUFACTURING COMPANY)' is converted to '3M COMPANY (MINNESOTA MINING AND MANUFACTURING CO'.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;is it possible to keep the strings includes (), [], {} 1 following the previous string, 2 not been processed. in this step?&lt;/P&gt;&lt;P&gt;for '3M COMPANY (MINNESOTA MINING AND MANUFACTURING COMPANY)', I just expect to get '3M CO (MINNESOTA MINING AND MANUFACTURING COMPANY)' rather than split to a new variable&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;however, for 'ACE SPORTS LIMITED TAIWAN BRANCH (B.V.I.)' , I expect to get 'ACE SPORTS LTD' and split 'TAIWAN BRANCH (B.V.I.)' in a new variable named&amp;nbsp;&lt;CODE class=" language-sas"&gt;&amp;amp;Company_name._address.&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;Could you please give me some suggestions about this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;edit;&lt;/P&gt;&lt;P&gt;besides, for value ' ARCH TIMBER PROTECTION LIMITED, A PRIVATE LIMITED COMPANY ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM', I get ' ARCH TIMBER PROTECTION LTD A PRIVATE LIMITED CO' and 'ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM', however, I expect to have ' ARCH TIMBER PROTECTION LTD' and 'A PRIVATE LTD CO ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM' but I know it is relatively difficult to process. so I think I can do it step by step.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In conclusion, I expect to&amp;nbsp;&lt;SPAN&gt;separate the 'name' variable into two new variables, the first is 'name_B' variable and the second named as 'address'.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1.standardise the company suffix (which have been done by your code) and then 2.split the strings based on the standardised suffixes, &lt;SPAN&gt;If the 'name' variable includes two different company suffix( such as 'CO,' and 'LTD', two observations should be created.&lt;/SPAN&gt;&amp;nbsp;the strings among (), [], {}, ' ', " " should be ignored and just following the string before the '(','[','{'," ' ", ' " '.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for example, for original data,&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;NAME&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3M COMPANY (MINNESOTA MINING AND MANUFACTURING COMPANY)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ACE SPORTS LIMITED TAIWAN BRANCH (B.V.I.)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LIMITED, A PRIVATE LIMITED COMPANY ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I expec to do&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;step1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;NAME&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3M CO (MINNESOTA MINING AND MANUFACTURING COMPANY)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ACE SPORTS LTD TAIWAN BRANCH (B.V.I.)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LTD A PRIVATE LTD CO ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;step2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;NAME&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;name_B&lt;/TD&gt;&lt;TD&gt;name_address&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3M CO (MINNESOTA MINING AND MANUFACTURING COMPANY)&lt;/TD&gt;&lt;TD&gt;3M CO (MINNESOTA MINING AND MANUFACTURING COMPANY)&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ACE SPORTS LTD TAIWAN BRANCH (B.V.I.)&lt;/TD&gt;&lt;TD&gt;ACE SPORTS LTD&lt;/TD&gt;&lt;TD&gt;TAIWAN BRANCH (B.V.I.)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LTD A PRIVATE LTD CO ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LTD&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;A PRIVATE LTD CO ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LTD A PRIVATE LTD&lt;/TD&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LTD A PRIVATE LTD&lt;/TD&gt;&lt;TD&gt;CO ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LTD A PRIVATE LTD CO ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LTD A PRIVATE LTD CO&lt;/TD&gt;&lt;TD&gt;ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please give me some suggestions about how to do it? thanks very much&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 03:06:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556978#M155221</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-05-08T03:06:32Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556994#M155222</link>
      <description>&lt;P&gt;Have you looked at what these regular expression do?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You have been working on that data for weeks now, and show no sign of having learnt from the work of the experts who helped you.&lt;/P&gt;
&lt;P&gt;You can't expect strangers to come to your rescue each time a new element appears in a string.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We give you the tools to learn, not to replace you and do your job.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do you now understand what these regular expression do?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 03:04:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556994#M155222</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-08T03:04:42Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556996#M155223</link>
      <description>&lt;P&gt;dear&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;appreciate for your reply. yes, I understand what these regular expressions do, and I also rewrite some of them to fit them better for my data. for example, I use '[^\w\d]*' instead of ' ,?L ?\.? ?' in order to represent more punctations. as I have to process large data. however, the ')' is included in the '[^\w\d]*' as well. I always use Online regular expressions to try the code by myself or check the previous topic before posting the questions. I am a beginner of SAS and learn SAS several months by myself. if my question is stupid, I apologise for it.&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 03:22:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556996#M155223</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-05-08T03:22:27Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556997#M155224</link>
      <description>&lt;P&gt;Glad to see you learn.&amp;nbsp;Good on you. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;gt; however, the ')' in included in the '[^\w\d]*' as well.&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You can exclude&amp;nbsp; )&amp;nbsp; if you want by using&amp;nbsp;&amp;nbsp;&lt;FONT face="courier new,courier"&gt;[^\w\d)] &lt;/FONT&gt;&lt;/SPAN&gt;instead.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 03:22:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556997#M155224</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-08T03:22:49Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556999#M155225</link>
      <description>&lt;P&gt;Dear&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for your reply.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please have a look at my previous question if you are convenient?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the '[^\w\d\)]*' is able to exclude the ')' but I cannot get what I need. Could you please give me more suggestions?&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 03:40:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/556999#M155225</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-05-08T03:40:47Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557006#M155227</link>
      <description>&lt;P&gt;For the 3M string, you change the second instance of string COMPANY instead of the first one because you probably have an error: you demand 2 spaces.&lt;/P&gt;
&lt;P&gt;Change&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;s/( ,?C ?\.? ?O ?\.? ?,? | [^\w\d]*CO[^\w\d]* | [^\w\d]*COMPA[NM]Y[^\w\d]* ) / CO /&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;s/( ,?C ?\.? ?O ?\.? ?,? | [^\w\d]*CO[^\w\d]* | [^\w\d]*COMPA[NM]Y[^\w\d]* )/ CO /&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also note that you could use function compbl() instead of a regular expression on the next line..&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 04:40:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557006#M155227</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-08T04:40:18Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557087#M155255</link>
      <description>&lt;P&gt;Dear&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;yes, it works well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;however, I could not keep the brackets and strings among brackets following the previous string. for example.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;'3M COMPANY (MINNESOTA MINING AND MANUFACTURING COMPANY)', I expect to have&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;NAME&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;name_B&lt;/TD&gt;&lt;TD&gt;name_address&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3M CO (MINNESOTA MINING AND MANUFACTURING COMPANY)&lt;/TD&gt;&lt;TD&gt;3M CO (MINNESOTA MINING AND MANUFACTURING COMPANY)&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please give me some suggestion about this?&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 12:50:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557087#M155255</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-05-08T12:50:49Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557318#M155342</link>
      <description>&lt;P&gt;What's the rule to keep substrings?&lt;/P&gt;
&lt;P&gt;Keep it if comes in parentheses after CO or LTD?&lt;/P&gt;
&lt;P&gt;In this case maybe&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;NAME_B=prxchange('s/(.*)( CO LTD | LTD | &lt;FONT color="#FF0000"&gt;&lt;FONT color="#000000"&gt;CO&lt;/FONT&gt; (\([^)]*\))?)&lt;/FONT&gt;(.*)/$1$2/',1,NAME);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;instead of&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;NAME_B=prxchange('s/(.*)( CO LTD | LTD | CO )(.*)/$1$2/',1,NAME);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 22:59:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557318#M155342</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-08T22:59:21Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557380#M155377</link>
      <description>&lt;P&gt;Dear&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;appreciate your help very much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;may I ask two more question, please?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For the value '&lt;SPAN&gt;ARCH TIMBER PROTECTION &lt;FONT color="#FF0000"&gt;LIMITED&lt;/FONT&gt;, A PRIVATE&lt;FONT color="#FF0000"&gt; LIMITED COMPANY&lt;/FONT&gt; ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I expect to get&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;NAME&lt;/TD&gt;&lt;TD&gt;name_B&lt;/TD&gt;&lt;TD&gt;name_address&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ARCH TIMBER PROTECTION &lt;FONT color="#FF0000"&gt;LTD&lt;/FONT&gt; A PRIVATE &lt;FONT color="#FF0000"&gt;LTD CO&lt;/FONT&gt; ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;TD&gt;ARCH TIMBER PROTECTION &lt;FONT color="#FF0000"&gt;LTD&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;A PRIVATE LTD CO ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;however,&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%MACRO CompnayNameM(no=,Company_name=);
data have;
Set have;
name_S22=name;		
name_S22=cat(' ', name_S22,' ');	
name_S221=name_S22;
name_S221=prxchange('s/( LTD[^\w\d]+CO[^\w\d]* | CO[^\w\d]+LTD[^\w\d]* )/ CO LTD /',-1,name_S221 );
name_S221=prxchange('s/( ,?L ?\.? ?T ?\.? ?D ?\.? ?,? | [^\w\d]*LIMITED[^\w\d]* | [^\w\d]*LTD[^\w\d]* )/ LTD /',-1,name_S221 );
name_S221=prxchange('s/( ,?C ?\.? ?O ?\.? ?,? | [^\w\d]*CO[^\w\d]* | [^\w\d]*COMPA(N|M)Y[^\w\d]* )/ CO /',-1,name_S221);
name_S221=compbl(name_S221);
name_S221=prxchange('s/( LTD CO | CO LTD )/ CO LTD /',-1,name_S221);

if name_S221 ne name_S22 then do;
name_B=prxchange('s/(.*)( CO LTD | LTD | CO &lt;FONT color="#FF0000"&gt;(\([^)]*\))*(\[[^]]*\])*(\{[^}]*\})*(\"[^"]*\")*&lt;/FONT&gt;)(.*)/$1$2/',1,name_S221);
name_address=prxchange('s/(.*)( CO LTD | LTD | CO (\([^)]*\))*(\[[^]]*\])*(\{[^}]*\})*(\"[^"]*\")*) *(.*)/$3/',1,name_S221);
end;
run;

%MEND CompnayNameM;
%CompnayNameM(no=1,Company_name=HRM_L2)
%CompnayNameM(no=2,Company_name=PERSON_NAME)
Run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I only get&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;name&lt;/TD&gt;&lt;TD&gt;name_S22&lt;/TD&gt;&lt;TD&gt;name_S221&lt;/TD&gt;&lt;TD&gt;name_B&lt;/TD&gt;&lt;TD&gt;name_address&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LIMITED, A PRIVATE LIMITED COMPANY ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LIMITED, A PRIVATE LIMITED COMPANY ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LTD A PRIVATE CO LTD ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;TD&gt;ARCH TIMBER PROTECTION LTD A PRIVATE CO LTD&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;How can I stop the process when meet the first company suffix?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Besides, the&amp;nbsp;&amp;nbsp;&lt;CODE class=" language-sas"&gt;(\'[^']*\')* cannot be added in the prxchange function.&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE class=" language-sas"&gt;Could you please give me some suggestion about this?&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 May 2019 08:34:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557380#M155377</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-05-09T08:34:18Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557679#M155509</link>
      <description>&lt;P&gt;The comma is bothering you because you didn't clean the string properly.&lt;/P&gt;
&lt;P&gt;Maybe this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data T;
  input NAME_S22 :&amp;amp;$200.;
  %* Clean company;
  NAME_S221=prxchange('s/ [^\w\d]*C[ .]*O(MPA[NM]Y)?[^\w\d]*?([ )])/ CO\2/',-1,NAME_S22 );
  %* Clean LTD;
  NAME_S221=prxchange('s/ [^\w\d]*L[ .]*T[ .]*D[^\w\d]*([ )])/ LTD\1/'     ,-1,NAME_S221);
  %* Clean Limited;
  NAME_S221=prxchange('s/ [^\w\d]*LIMITED[^\w\d]*([ )])/ LTD\1/'           ,-1,NAME_S221);
  %* Clean CO LTD;
  NAME_S221=prxchange('s/ (LTD[^\w\d]+CO|CO[^\w\d]+LTD)([ )])/ CO LTD\2/'  ,-1,NAME_S221);
  NAME_S221=compbl(name_S221);
cards;
ARCH TIMBER PROTECTION LIMITED, A PRIVATE LIMITED COMPANY ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM
3M COMPANY (MINNESOTA MINING AND MANUFACTURING COMPANY)
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;&lt;BR /&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.T" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;&lt;COLGROUP&gt; &lt;COL /&gt;&lt;/COLGROUP&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l header" scope="col"&gt;NAME_S221&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;ARCH TIMBER PROTECTION LTD A PRIVATE CO LTD ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;3M CO (MINNESOTA MINING AND MANUFACTURING CO)&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 10 May 2019 04:59:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557679#M155509</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-10T04:59:13Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557705#M155516</link>
      <description>&lt;P&gt;Dear&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think your code works well. However, 1, I worry about the presence of ' ' and " " following 'COMPANY'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for example&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data T;
  input NAME_S22 :&amp;amp;$200.;
cards;
3M COMPANY (MINNESOTA MINING AND MANUFACTURING COMPANY)
3M COMPANY 'MINNESOTA MINING AND MANUFACTURING COMPANY'
3M COMPANY "MINNESOTA MINING AND MANUFACTURING COMPANY"
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;I expect to get&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;NAME_S22&lt;/TD&gt;&lt;TD&gt;NAME_B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3M COMPANY (MINNESOTA MINING AND MANUFACTURING COMPANY)&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;3M CO&lt;/FONT&gt; (MINNESOTA MINING AND MANUFACTURING COMPANY)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3M COMPANY 'MINNESOTA MINING AND MANUFACTURING COMPANY'&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;3M CO&lt;/FONT&gt; 'MINNESOTA MINING AND MANUFACTURING COMPANY'&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3M COMPANY "MINNESOTA MINING AND MANUFACTURING COMPANY"&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#FF0000"&gt;3M CO&lt;/FONT&gt; "MINNESOTA MINING AND MANUFACTURING COMPANY"&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I expect to use&amp;nbsp;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;\&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;'[^'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;*&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;\&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;* and &lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;\"&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;[^'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;*&lt;SPAN class="token punctuation"&gt;\"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;* based on the code which&lt;/SPAN&gt;&amp;nbsp;you taught me(i.e., (\([^)]*\))*). However it out of work in the regex in&amp;nbsp;SAS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2.Besides,&amp;nbsp;&lt;/P&gt;&lt;P&gt;For the value '&lt;SPAN&gt;ARCH TIMBER PROTECTION&amp;nbsp;&lt;FONT color="#FF0000"&gt;LIMITED&lt;/FONT&gt;, A PRIVATE&lt;FONT color="#FF0000"&gt;&amp;nbsp;LIMITED COMPANY&lt;/FONT&gt;&amp;nbsp;ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/SPAN&gt;&lt;SPAN&gt;' I expect to get the value of 'NAME_B' which stopping the process when meeting the first company suffix.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;NAME&lt;/TD&gt;&lt;TD&gt;name_B&lt;/TD&gt;&lt;TD&gt;name_address&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ARCH TIMBER PROTECTION&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;FONT color="#FF0000"&gt;LTD&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;A PRIVATE&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;FONT color="#FF0000"&gt;LTD CO&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;TD&gt;ARCH TIMBER PROTECTION&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;FONT color="#FF0000"&gt;LTD&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;A PRIVATE &lt;FONT color="#FF0000"&gt;LTD CO&lt;/FONT&gt; ORGANISED UNDER THE LAWS OF THE UNITED KINDGOM&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please give me some suggestion about these two questions?&lt;/P&gt;</description>
      <pubDate>Fri, 10 May 2019 07:25:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557705#M155516</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2019-05-10T07:25:26Z</dc:date>
    </item>
    <item>
      <title>Re: separate the 'name' variable based on a list of company suffix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557712#M155522</link>
      <description>I can't look now but try:-  to test your expression on the regex101.com website- learn how to add quotes in strings if you don't know how.  Hint: double them. &lt;BR /&gt;</description>
      <pubDate>Fri, 10 May 2019 08:57:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/separate-the-city-with-a-company-name-based-on-PRXMATCH-function/m-p/557712#M155522</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2019-05-10T08:57:02Z</dc:date>
    </item>
  </channel>
</rss>

