re.Scanner - match python dot notation

2011-02-07 Thread Christian K.

Hi,

I am trying to find a regexp to be used with re.Scanner that matches the 
'package.module.member' syntax. More specifically I want to parse 
function strings like


numpy.sin(x*a+w)

and sort out variables/constants.

This one here works using re.match but fails when used with Scanner (due 
to the grouping () I guess).


r'((?=.*[a-zA-Z])(?=.+[\.]).+)[\(\+\-]+'

I highly appreciate your comments.

Regards, christian

--
http://mail.python.org/mailman/listinfo/python-list


Re: re.Scanner - match python dot notation

2011-02-07 Thread Christian K.

Am 07.02.11 17:47, schrieb MRAB:

On 07/02/2011 15:34, Christian K. wrote:

Hi,

I am trying to find a regexp to be used with re.Scanner that matches the
'package.module.member' syntax. More specifically I want to parse
function strings like

numpy.sin(x*a+w)

and sort out variables/constants.

This one here works using re.match but fails when used with Scanner (due
to the grouping () I guess).

r'((?=.*[a-zA-Z])(?=.+[\.]).+)[\(\+\-]+'

I highly appreciate your comments.

Regards, christian


I'm not sure about your regex, but I'd probably use this:

r'[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*'


Perfect, thanks. I changed the last * to a + so that the string must 
contain a '.' to match.


Christian

--
http://mail.python.org/mailman/listinfo/python-list