【发布时间】:2018-12-10 15:11:03
【问题描述】:
我正在尝试测试一个字符是否是特殊字符。
当我编写以下代码时,'-' 字符失败:
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")
输出>>找到
造成这种差异的原因是什么?如何确保检测到这些字符?
【问题讨论】:
-
我给你一个提示:看看字符类
[a-z]中的字符。长度超过三个字符! -
尝试转义字符,如 re.compile('[\-]')
-
知道了。它应该是范围内的第一个或最后一个字符。也适用于转义字符:regex = re.compile('[!@#$%^&*()\-+]')。谢谢!
-
您好,请看一下我标记的两个问题。这是以前被问过的一个常见问题。如果他们没有解决您的问题,请在您的问题中添加更多详细信息。