[Date Index]
[Thread Index]
[Author Index]
Re: find position in a list made by string by searching incomplete
*To*: mathgroup at smc.vnet.net
*Subject*: [mg130372] Re: find position in a list made by string by searching incomplete
*From*: Alexei Boulbitch <Alexei.Boulbitch at iee.lu>
*Date*: Sat, 6 Apr 2013 05:09:30 -0400 (EDT)
*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com
*Delivered-to*: l-mathgroup@wolfram.com
*Delivered-to*: mathgroup-newout@smc.vnet.net
*Delivered-to*: mathgroup-newsend@smc.vnet.net
I have a list of strings like
list1={{"a", "b something", "a", "a", "b", "c", "b"}
In this list, 'something' is a sting that I will not know in advanced and
there are several spaces between the 'b' and the 'something' in one string.
The number of the spaces is unknown.
I want to find out the position of the this "b something" sting in the
list. So, I did,
Position[list1, "b*"]
and I also tried,
Position[list1,"b"~~___ ]
both of them gave me {} as results.
Also Cases[list1,"b"~~___] or Cases[list1, "b*"] does not work. I can get
the correct position only if I give the exact "b something" as the
searching pattern. What is the easiest way to search with a incomplete
string pattern in this case? Thanks for your help.
Hi,
It will go easily, if you transform the list of strings (or characters) into the list of symbols:
list1 = {"a", "b something", "a", "a", "b", "c", "b"}
{"a", "b something", "a", "a", "b", "c", "b"}
list2 = Map[ToExpression, list1]
{a, b something, a, a, b, c, b}
Now, one can do it by several ways. For instance, this:
Position[list2, (b a_)]
{{2}}
One can use the fact that the special form of "b something" gives it a Head that differs from that of all other terms. Indeed,
Head /@ list2
{Symbol, Times, Symbol, Symbol, Symbol, Symbol, Symbol}
this item has the head Times, while the others - Symbol. We can, therefore, do the following:
Position[list2, Select[list2, Head[#] == Times &][[1]]]
{{2}}
or otherwise
Position[Head /@ list2, Times]
{{2}}
I guess that one can see also few other ways.
Have fun, Alexei
Alexei BOULBITCH, Dr., habil.
IEE S.A.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG
Office phone : +352-2454-2566
Office fax: +352-2454-3566
mobile phone: +49 151 52 40 66 44
e-mail: alexei.boulbitch at iee.lu
Prev by Date:
**Re: extract from Reduce**
Next by Date:
**Re: Packages with data sets**
Previous by thread:
** Re: find position in a list made by string by searching incomplete**
Next by thread:
**rayshade POV Export help asked**
| |