[Python-ideas] dir with a glob?

Georg Brandl g.brandl at gmx.net
Thu Jun 30 19:27:12 CEST 2011


On 30.06.2011 15:09, Mathias Panzenböck wrote:
> I would rather add a grep method to regular expression objects:
>> 	def grep(self,sequence):
> 		for s in sequence:
> 			if self.search(s):
> 				yield s
>> And a global function to the re module:
>> 	def grep(regex,sequence,flags=0):
> 		return re.compile(regex,flags).grep(sequence)
>>> Then you could do:
>> 	re.grep("^i", dir(sp.fft))
>> Yes, it would be more to type but it would be more general.

No you couldn't, since this would return <generator ...> -- an explicit
list() would be required.
> OT: I think it would be good if regular expressions would be callable with this method:
>> 	def __call__(self,s):
> 		return self.search(s) is not None
>> Then one could use it in a filter expression:
>> 	filter(re.compile("^i"), dir(sp.fft))

What's wrong with
 filter(re.compile("^i").search, dir(sp.fft))
? And for non-interactive use, you almost always have a compiled regex object
already, so that this becomes
 filter(rex.search, seq)
which is not sufficiently harder than
 rex.grep(seq)
to justify a new regex method. (Also, people won't be able to remember if
grep() uses match() or search().)
Georg


More information about the Python-ideas mailing list

AltStyle によって変換されたページ (->オリジナル) /