[Tutor] re.search() help

Alan Gauld alan.gauld at btinternet.com
Sun Apr 15 09:48:10 CEST 2012


On 15/04/12 08:10, Michael Lewis wrote:
> Hi everyone,
>
> I am a bit confused on how one would ever use re.search(). It
> essentially tells me the location on (RAM?) if the pattern matches?

No it returns a MatchObject instance.
You can then perform various operations on the
MatchObject to, for example find the substring
which actually matched.

 > What is the purpose of this?

So that you can find the section of a long string that
first matches your regex.

> Can you give me a good example of where it would
> be useful?

Searching for the first occurence of a regex in a long string.

>     Scan through /string/ looking for a location where the regular
>     expression /pattern/ produces a match, and return a corresponding
>     MatchObject

Try reading the docs on MatchObject, here is a simple example:

 >>> s = "Here is a string"
 >>> m = re.search("is", s)
 >>> m
<_sre.SRE_Match object at 0x153b780>
 >>> dir(m)
['__copy__', '__deepcopy__', 'end', 'expand', 'group', 'groupdict', 
'groups', 'span', 'start']
 >>> m.start
<built-in method start of _sre.SRE_Match object at 0x153b780>
 >>> m.start()
5
 >>> m.end()
7
 >>> m.group()
'is'
 >>> m.span()
(5, 7)


Hopefully that gives you the basic idea?

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/



More information about the Tutor mailing list