我正在尝试测试字符是否为特殊字符。
当我编写以下代码时,它对于'-'字符失败:
try except
输出>>未找到
但是,如果我按如下所示更改代码中“-”字符的位置(代码的第3行),则它可以正常工作
import re
s = '-'
regex = re.compile('[!@#$%^&*()-+]')
if regex.search(s) == None:
print("Not found")
else:
print("Found")
输出>>找到
造成这种差异的原因是什么?如何确定将检测到字符?
答案 0 :(得分:5)
-
被视为特殊字符,如果不是范围中的最后一个字符或第一个字符,并且不能转义。所以:
[-19]
或[19-]
或[1\-9]
是-
,1
或9
,但[1-9]
介于1
和9
之间,包括-
本身。答案 1 :(得分:0)
'-'
表示两者之间。
所以第一个表达式说
regex = re.compile('[!@#$%^&*()-+]')
在')'和'+'之间匹配字符