Re: a conflicting StringReplace
- To: mathgroup at smc.vnet.net
- Subject: [mg56309] Re: a conflicting StringReplace
- From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
- Date: Fri, 22 Apr 2005 06:22:33 -0400 (EDT)
- Organization: Uni Leipzig
- References: <d47tic$578$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
try
StringReplace["abc", {q_ ~~ "bc" :> q <> "BC",
"ab" ~~ q_ :> "AB" <> q}]
and
StringReplace["abc", {"ab" ~~ q_ :> "AB" <> q, q_
~~ "bc" :> q <> "BC"}]
Regards
Jens
"Hui Fang" <fangh73 at xmu.edu.cn> schrieb im
Newsbeitrag news:d47tic$578$1 at smc.vnet.net...
>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
>