Newbie RE question

Tim Chase python.list at tim.thechases.com
Mon Sep 25 20:49:54 CEST 2006


1) Please don't top-post...it makes it hard to reply in context

2) You may want to "reply to all" so that the mailing list gets 
CC'd...there are lots of smart folks on the list, and by replying 
only to me, you limit your options to the meager extents of my 
knowledge.

>>> I would like to search for any of the strings in r'/\:*?"<>|' in a
>>> string using RE module.  Can someone tell me how?
>>
>> use the search() method of the regexp object.
>>
>> r = re.compile(r'[/\:*?"<>|]')
>> results = r.search(a_string)
>>
> Thank you very much for your helpful reply.  Could you tell me what I can do
> once I do:
> 
> r = re.compile(r'[/\:*?"<>|]')
> results = r.search(a_string)
> 
> I'm not sure what I can do with the result variable?

Well, your original post only asked /how/ to search for one of 
those characters ("Can someone tell me how?"), but failed to 
specify /what/ you wanted to do with the results.

If you wanted the index of the first one, then

	results.start()

will return that.

If you want the character in that set that was found first, it is 
found in

	results.group(0)

Or, if you want them all, you can use

	r.findall(a_string)

which will return a list of all the characters in that set that 
were found in a_string.

Using the interpreter's built-in help and introspection can be 
immensely helpful, as you can do things like

 >>> dir(results) # to find what you can do with the results
 >>> dir(r)# find out what a compiled regex object can do
 >>> help(results.start) # learn about the start() function

Just a few pointers,

-tkc








More information about the Python-list mailing list