如何用#或拒绝字符串?使用正则表达式python

时间:2019-06-03 13:50:20

标签: python regex

我想验证我的字符串以检查是否有效。如果该字符串包含(_,-,alphanumerics)(不包括任何其他特殊字符),则该字符串有效。

我正在使用下面的正则表达式,但是如果字符串的末尾包含#?,则它被认为是有效的,而不是抛出无效字符串的错误。

def is_valid_id(id_):
    """Check if id is valid"""
    return re.match(r'^[\-a-zA-Z0-9_]+\Z', id_)

如果字符串的末尾除(_,-)之外包含任何特殊字符,我希望该字符串无效。

2 个答案:

答案 0 :(得分:1)

仅使用string模块和all函数,就可以在不使用正则表达式的情况下做到这一点:

import string
possible_chars = string.ascii_letters + string.digits + '_-'
a = 'lwngjgeiunekrgn?'
all(char in possible_chars for char in a)
  

False

答案 1 :(得分:0)

您必须使用$

return re.match(r'^[\-a-zA-Z0-9_]+$', id_)