On Mon, Aug 28, 2006 at 11:36:18AM -0400, Kent Johnson wrote:
>William O'Higgins Witteman wrote:
>> Thank you for this. The problem is apparently not my syntax, but
>> something else. Here is a pared-down snippet of what I'm doing:
>>
>> In [1]: import re
>>
>> In [2]: pat = re.compile('''
>> ...:copy of
>> ...:|
>> ...:admin
>> ...:''', re.IGNORECASE | re.VERBOSE)
>>
>> In [3]: pat.search('''\\some\unc\path\Copy of somedarnfilename.exn''')
>>
>> In [4]:
>>
>> I don't get my match, and I really think I should. Can anyone tell me
>> what I'm missing? Thanks.
>There are several problems here.
>
>First, when re.VERBOSE claims to ignore whitespace, it isn't kidding.
>Space, tab and newline are all whitespace, so your re is equivalent to
>
> pat = re.compile('''copyof|admin''', re.IGNORECASE) [redacted]
>
>To get the space between 'copy' and 'of' to be included, you have to escape
>it, e.g. 'copy\ of'.
D'oh! I'm an idjit, thanks for your patience.
>But even if you do escape the space, I'm not sure what you expect to match.
>Colon is not special to regexes (except in non-grouping parentheses (?:...) ),
>so your regex expects literal colons in the string, which you don't have.
Um, that is the output of the iPython shell, which I thought you used.
I just copied the output into the window. It indicates an indent. I
didn't mean to muddy the waters. Sorry.
>Finally, in your test string you use backslash characters which you mean to be
>literal backslashes, not character escapes. You should use a raw string for
>this:
> pat.search(r'''\\some\unc\path\Copy of somedarnfilename.exn''')
Excellent, thanks for that.
--
yours,
William
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor