检查字符串是否包含特定的特殊字符、字母数字字符并以字母顺序结尾



我想确保字符串中的任何字符都包含字母数字字符以及_,,但字符串必须以字母字符结尾。任何地方都不能有空白。

我正在尝试这个:

'^[Sa-zA-Z0-9,_][SA-Za-z]+$'

我希望它能处理字母数字、特殊字符和空白,[Sa-zA-Z0-9,_]

这个:

[SA-Za-z]说在最后使用字母字符,但似乎失败了,比如:

import re
s = 'lk78d1'
regex = '^[Sa-zA-Z0-9,_][SA-Za-z]+$'
if(re.search(regex,s)):  
print("valid")  

else:
raise ValueError('non valid')

错误在于您使用的S基本上匹配任何非空白字符,即它覆盖了剩余的模式,因为它包括字母数字字符和所有符号。

另外一个改进是使用w而不是[A-Za-z0-9_]。并使用忽略大小写标志使其可读性更强。就是一个可测试的例子

新的python代码是

import re
s = 'lk78d1'
regex = r'^[w,]+[a-z]$'

if(re.search(regex, s, re.IGNORECASE)):  
print("valid")  

else:
raise ValueError('non valid')

相关内容

最新更新