Re: [julia-users] How to: grep an Array of strings
You are looking for `filter`: filter(line->match(r"parameter", line), rLines) -erik On Thu, Dec 3, 2015 at 2:52 PM, Jason McConochiewrote: > 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 http://www.perimeterinstitute.ca/personal/eschnetter/
Re: [julia-users] How to: grep an Array of strings
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> 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 > http://www.perimeterinstitute.ca/personal/eschnetter/ >
[julia-users] How to: grep an Array of strings
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")
Re: [julia-users] How to: grep an Array of strings
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> 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 >>> 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 >>> http://www.perimeterinstitute.ca/personal/eschnetter/ >>> >> >
Re: [julia-users] How to: grep an Array of strings
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. Sanderswrote: > > > 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 >> 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 >> http://www.perimeterinstitute.ca/personal/eschnetter/ >> >
Re: [julia-users] How to: grep an Array of strings
There's an obvious predicate implied by a Regex: does it match a string? What's the obvious predicate for a string? Checking whether it is contained in another string is one option but that's pretty arbitrary. You could just as well check for containment the other way. Or prefix, or suffix, etc. On Thu, Dec 3, 2015 at 4:01 PM, Sethwrote: > 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 >> 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 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 http://www.perimeterinstitute.ca/personal/eschnetter/ >>> >>
Re: [julia-users] How to: grep an Array of strings
Makes sense. Thanks! On Thursday, December 3, 2015 at 1:06:16 PM UTC-8, Stefan Karpinski wrote: > > There's an obvious predicate implied by a Regex: does it match a string? > What's the obvious predicate for a string? Checking whether it is contained > in another string is one option but that's pretty arbitrary. You could just > as well check for containment the other way. Or prefix, or suffix, etc. > > On Thu, Dec 3, 2015 at 4:01 PM, Seth> wrote: > >> 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 >>> 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 > http://www.perimeterinstitute.ca/personal/eschnetter/ > >>> >