I want to add to this rule match on Apostrophe \'
rule = re.compile(r\'^[^*$<,>?!]*$\')
I have tried:
The error comes because you cannot directly use a single '
inside ''
and similarly single "
can't be used inside ""
because this confuses python and now it doesn't know where the string actually ends.
You can use either double quotes or escape the single quote with a '\'
:
rule = re.compile(r"^[^*$<,>?!']*$")
Demo:
>>> strs = 'can\'t'
>>> print strs
can't
>>> strs = "can't"
>>> print strs
can't
>>> 'can't' #wrong, SyntaxError: invalid syntax
>>> "can"t" #wrong, SyntaxError: invalid syntax
You have to escape the apostrophe, otherwise it will be counted as the end of the raw string:
rule = re.compile(r'^[^*$<,>?!\']*$')
Or, you can use "
to surround your string, which is perfectly valid in python:
rule = re.compile(r"^[^*$<,>?!']*$")