Simple (newbie) regular expression question

André Roberge andre.roberge at gmail.com
Fri Jan 21 16:56:11 EST 2005


John Machin wrote:
> André Roberge wrote:
> 
>>Sorry for the simple question, but I find regular
>>expressions rather intimidating.  And I've never
>>needed them before ...
>>
>>How would I go about to 'define' a regular expression that
>>would identify strings like
>>__alphanumerical__  as in __init__
>>(Just to spell things out, as I have seen underscores disappear
>>from messages before, that's  2 underscores immediately
>>followed by an alphanumerical string immediately followed
>>by 2 underscore; in other words, a python 'private' method).
>>
>>Simple one-liner would be good.
>>One-liner with explanation would be better.
>>
>>One-liner with explanation, and pointer to 'great tutorial'
>>(for future reference) would probably be ideal.
>>(I know, google is my friend for that last part. :-)
>>
>>Andre
> 
> 
> Firstly, some corrections: (1) google is your friend for _all_ parts of
> your question (2) Python has an initial P and doesn't have private
> methods.
> 
> Read this:
> 
> 
>>>>pat1 = r'__[A-Za-z0-9_]*__'
>>>>pat2 = r'__\w*__'
>>>>import re
>>>>tests = ['x', '__', '____', '_____', '__!__', '__a__', '__Z__',
> 
> '__8__', '__xyzzy__', '__plugh']
> 
>>>>[x for x in tests if re.search(pat1, x)]
> 
> ['____', '_____', '__a__', '__Z__', '__8__', '__xyzzy__']
> 
>>>>[x for x in tests if re.search(pat2, x)]
> 
> ['____', '_____', '__a__', '__Z__', '__8__', '__xyzzy__']
> 
> 
> I've interpreted your question as meaning "valid Python identifier that
> starts and ends with two [implicitly, or more] underscores".
> 
> In the two alternative patterns, the part in the middle says "zero or
> more instances of a character that can appear in the middle of a Python
> identifier". The first pattern spells this out as "capital letters,
> small letters, digits, and underscore". The second pattern uses the \w
> shorthand to give the same effect.
> You should be able to follow that from the Python documentation.
> Now, read this: http://www.amk.ca/python/howto/regex/
> 
> HTH,
> 
> John
> 
Thanks for it all. It does help!
André




More information about the Python-list mailing list