如果有特殊字符=true否则=false枚举特殊字符的问题



我正在尝试制作一个程序,让用户在控制台中键入任何内容,如果在下面的代码中指定了任何特定的特殊字符,它将返回"真的";。如果它不包含任何特殊字符,那么它将返回";错误";。我在第三行代码中似乎有问题,特别是在枚举特殊字符的地方(字符串检查=重新编译('!"#$%&'((*+,-./:<>[]^_'(,我不太明白为什么。

这是代码:

import re
def hasSpecialCharacters(s):
stringCheck = re.compile('!"#$%&'()*+,-./:;<=>?@[]^_')
if (stringCheck.search(s) == None):
print("False")
else:
print("True")



def main():
print("Écriver une phrase.")
trueOrFalse = str(input("=> "))

hasSpecialCharacters(trueOrFalse)


main()

这是长错误代码:

Traceback (most recent call last):
File "c:UsersvautoDropboxPCDocumentsALGO CCNBTravail 2 (Programme B).py", line 25, in <module>
main()
File "c:UsersvautoDropboxPCDocumentsALGO CCNBTravail 2 (Programme B).py", line 18, in main
hasSpecialCharacters(trueOrFalse)
File "c:UsersvautoDropboxPCDocumentsALGO CCNBTravail 2 (Programme B).py", line 4, in hasSpecialCharacters
stringCheck = re.compile('!"#$%&'()*+,-./:;<=>?@[]^_')
File "C:UsersvautoAppDataLocalProgramsPythonPython39libre.py", line 252, in compile
return _compile(pattern, flags)
File "C:UsersvautoAppDataLocalProgramsPythonPython39libre.py", line 304, in _compile
p = sre_compile.compile(pattern, flags)
File "C:UsersvautoAppDataLocalProgramsPythonPython39libsre_compile.py", line 764, in compile
p = sre_parse.parse(p, flags)
File "C:UsersvautoAppDataLocalProgramsPythonPython39libsre_parse.py", line 948, in parse
p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
File "C:UsersvautoAppDataLocalProgramsPythonPython39libsre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "C:UsersvautoAppDataLocalProgramsPythonPython39libsre_parse.py", line 671, in _parse
raise source.error("multiple repeat",
re.error: multiple repeat at position 10

您必须键入

stringCheck=re.compile('[!"#$%&'()*+,-./\:;<=>?@[]^_]')

错误是由于regex使用了特殊字符,为了匹配该特殊字符,必须在字符之前设置

最新更新