oj wrote:
On Jul 18, 12:10 pm, John Machin <[EMAIL PROTECTED]> wrote:
On Jul 18, 9:05 pm, oj <[EMAIL PROTECTED]> wrote:



On Jul 18, 11:33 am, [EMAIL PROTECTED] wrote:
Hi,
Hi, I am taking a string as an input from the user and it should only
contain the chars:L , M or R
I tried the folllowing in kodos but they are still not perfect: [^A-K,^N-Q,^S-Z,^0-9]
[L][M][R]
[LRM]?L?[LRM]? etc but they do not exactly meet what I need.
For eg: LRLRLRLRLM is ok but LRLRLRNL is not as it has 'N' .like that. regards,
SZ
The string may or may not have all the three chars.
With regular expressions, [^LRM] matches a character that isn't L, R
or M. So:
import re var = "LRLRLRLNR" if re.search(r'[^LRM]', var):
    print "Invalid"
Fails if var refers to the empty string.

No it doesn't, it succeeds if var is an empty string. An empty string
doesn't contain characters that are not L, R or M.

The OP doesn't specify whether an empty string is valid or not. My
interpretation was that an empty string would be valid.
Why not just use * instead of + like:

if re.search(r'^[^LRM]*$', var): # note: ^ outside [] is start of string; $ 
means end of string
   print "Invalid"

This will *only* print invalid when there is a character other than L, R, or M 
or a empty string.



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

Reply via email to