このルールマッチにアポストロフィを追加したい '
rule = re.compile(r'^[^*$<,>?!]*$')
私が試してみました:
rule = re.compile(r'^[^*$<,>?!']*$')
しかし、アポストロフィは行エラーと見なされます。なぜですか?
アポストロフィをエスケープする必要があります。そうしないと、生の文字列の末尾としてカウントされます。
rule = re.compile(r'^[^*$<,>?!\']*$')
"
または、 Python で完全に有効な文字列を囲むために使用できます。
rule = re.compile(r"^[^*$<,>?!']*$")
'
エラーが発生するのは、単一の内部を直接使用できず''
、同様に内部で単一を使用"
できないためです""
。これは、Python を混乱させ、文字列が実際にどこで終了するかがわからないためです。
二重引用符を使用するか、単一引用符を'\'
:でエスケープできます。
rule = re.compile(r"^[^*$<,>?!']*$")
デモ:
>>> 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