Andrew Freeman wrote:
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.
Sorry, forget the beginning and ending markers, I just tried it out, it
doesn't work.
use this instead:
if re.search(r'[^LRM]*', var):
print "Invalid"
--
http://mail.python.org/mailman/listinfo/python-list