a conflicting StringReplace
- To: mathgroup at smc.vnet.net
- Subject: [mg56306] a conflicting StringReplace
- From: Hui Fang <fangh73 at xmu.edu.cn>
- Date: Thu, 21 Apr 2005 05:36:35 -0400 (EDT)
- Organization: Xiamen University Photonics Center
- Reply-to: fangh73 at xmu.edu.cn
- Sender: owner-wri-mathgroup at wolfram.com
I was teaching Mathematica in a college. In the class I was showing them some built-in functions about strings. Since this is not a very important issue, I didn't spend much time on each function. When I show them StringReplace, I gave them the following examples: In[1] StringReplace["abc",{"ab"->"AB"}] Out[1] ABc In[2] StringReplace["abc", {"bc"->"BC"}] Out[2] aBC No problem on those. Now a student tried the following: In[3] StringReplace["abc", {"ab"->"AB", "bc"->"BC"}] Out[3] ABc Now he asked me why only "ab" is replaced. I said this is because there is a conflict because both "ab" and "bc" contains "b". So Mathematica will choose the first replacement. I also told him if he changes the order, he will get aBC. Now: In[4] StringReplace["abc", {"bc"->"BC","ab"->"AB"}] Out[4] ABc This is the part I don't understand. Does Mathematica treat those rules in their canonical order (since "ab" is before "bc" in canonical order.), or in their written order? Thanks a lot! Hui Fang
- Follow-Ups:
- Re: a conflicting StringReplace
- From: Igor Antonio <igora@wolf-ram.com>
- Re: a conflicting StringReplace
- From: "Tomas Garza" <tgarza10@msn.com>
- Re: a conflicting StringReplace
- From: DrBob <drbob@bigfoot.com>
- Re: a conflicting StringReplace