That's really elegant. Is there a reason filter() is defined for regex 
strings but not ASCIIStrings?

On Thursday, December 3, 2015 at 12:55:50 PM UTC-8, Stefan Karpinski wrote:
>
> You can just pass a Regex object to filter:
>
> filter(r"a.*b.*c"i, map(chomp,open(readlines,"/usr/share/dict/words")))
>
> This gives all dictionary words containing "a", "b" and "c" in order but 
> not contiguous.
>
> On Thu, Dec 3, 2015 at 3:29 PM, David P. Sanders <dpsa...@gmail.com 
> <javascript:>> wrote:
>
>>
>>
>> El jueves, 3 de diciembre de 2015, 13:54:01 (UTC-6), Erik Schnetter 
>> escribió:
>>>
>>> You are looking for `filter`:
>>>
>>> filter(line->match(r"parameter", line), rLines)
>>>
>>
>> Apparently this needs to be
>>
>> filter(line->ismatch(r"3", line) != nothing, rLines)  
>>
>> (replace "match" with "ismatch" to get a Boolean expression instead of a 
>> RegexMatch object).
>>  
>>
>>>
>>> -erik
>>>
>>> On Thu, Dec 3, 2015 at 2:52 PM, Jason McConochie <jason.mc...@gmail.com> 
>>> wrote:
>>>
>>>> Is there grep for an Array of AbstractStrings?  See code below
>>>>
>>>>
>>>> # A. Read a file into memory (nLines pre-determined)
>>>>
>>>> fID=open(fName)
>>>>
>>>> iLine=0;
>>>>
>>>> rLines=Array(ASCIIString,nLines);
>>>>
>>>> while !eof(fID)
>>>>
>>>>   iLine+=1
>>>>
>>>>   rLines[iLine]=readline(fID)
>>>>
>>>> end
>>>>
>>>>
>>>> # B. Find all strings in rLines with "parameter"
>>>>
>>>> ???? Is something like this possible?
>>>>
>>>> indices=grep(rLines,r"parameter")
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> -- 
>>> Erik Schnetter <schn...@gmail.com> 
>>> http://www.perimeterinstitute.ca/personal/eschnetter/
>>>
>>
>

Reply via email to