StringCases
- To: mathgroup at smc.vnet.net
- Subject: [mg56903] StringCases
- From: Maxim <ab_def at prontomail.com>
- Date: Mon, 9 May 2005 01:46:57 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
It seems that the string matching functions don't handle patterns in
exactly the same way as the ordinary pattern matching Mathematica
functions:
In[1]:= StringCases["ab", s_ /; s === "a" :> s]
Out[1]= {"a"}
In[2]:= StringCases["ab", s_ :> s /; s === "a"]
Out[2]= {"a" /; "a" === "a", "b" /; "b" === "a"}
I think that it isn't mentioned anywhere in the documentation that
StringCases/StringReplace don't understand the conditions on the
right-hand side of the rule.
In[3]:= StringCases["abcd", (s_ ~~ "b") | (s_ ~~ "d")]
Out[3]= {"ab"}
This one is in plain disagreement with the standard pattern matching
rules, as in e.g. Cases[{f[a, b], f[c, d]}, f[s_, b] | f[s_, d]].
Maxim Rytin
m.r at inbox.ru
- Follow-Ups:
- Re: StringCases
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: StringCases