"Kelie" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
Hello,
I'm trying to write a regular expression to filter strings that meet the
following criteria:
1. Starts with 0-3 underscores;
2. Followed by one letter;
3. Then followed by 0 or more letters or digits or hyphens('-'),
4. Ends with one letter or digit; and
5. There should not be more than one continuous hyphens.
This is what I have so far. I think it meets all the criteria except for
the
last one. Haven't figured out the answer yet.
re.compile(r'_{0,3}[A-Z][A-Z0-9\-]*[A-Z0-9]')
In rule 4, does the string end with an *additional* letter or digit? The
string 'A' would seem to fit the rules, but the example provided would fail.
re.compile(r'^_{0,3}[A-Z](?:[A-Z0-9]|-(?!-))*[A-Z0-9]$') # if rule 4 is an
additional letter or digit
re.compile(r'^_{0,3}[A-Z](?:[A-Z0-9]|-(?!-))*(?<!-)$') # if
single-letter strings are allowed
-Mark
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor