无法检测正则表达式中的“-”字符

我正在尝试测试一个字符是否是特殊字符。


当我编写以下代码时,它因 '-' 字符而失败:


import re


s = '-'

regex = re.compile('[!@#$%^&*()-+]')


if regex.search(s) == None:

    print("Not found")

else:

    print("Found")

输出>>未找到


但是,如果我按如下方式更改模式中“-”字符的位置(代码第 3 行),它可以正常工作


import re 


s = '-'

regex = re.compile('[!@#$%^&*()+-]')


if regex.search(s) == None:

    print("Not found")

else:

    print("Found")

输出>>找到


是什么导致了这种差异,我如何确保能够检测到字符?


慕田峪7331174
浏览 182回答 2
2回答

蓝山帝景

-如果它不是范围中的最后一个或第一个字符且未转义,则将其视为特殊字符。所以:[-19]或者[19-]或者[1\-9]是-,1或者9,但[1-9]是1和之间的任何东西9,包括在内,但不是-它本身。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python