我有简单的表达式\s
和\\s
。两个表达式都匹配This is Sparta!!
。
>>> re.findall('\\s',"This is Sparta")
[' ', ' ']
>>> re.findall('\s',"This is Sparta")
[' ', ' ']
我在这里很困惑。 \
用于转义特殊字符,\s
表示空格,但两者如何在此处起作用?
答案 0 :(得分:5)
不要混淆python级别的字符串转义和正则表达式字符串转义。由于s
不是python级别的可逃避字符,因此解释器将“\ s”这样的字符串理解为两个字符“\”和“s”。将“s”替换为“n”(例如),并将其理解为换行符。
'\s' == '\\s'
True
'\n' == '\\n'
False
答案 1 :(得分:1)
\
仅转义以下字符
>>> len('\s')
2
>>> len('\n')
1
与
比较>>> len('\\s')
2
>>> len('\\n')
2