我正在尝试使用它Python regular expression来验证变量的值。
验证规则如下:
a-z、和(no , no , no )中A-Z的任何一个0-9*blank-,start是数字(0-9)或字母(a-z, A-Z)或*end是数字(0-9)或字母(a-z, A-Z)或*(0-9)或字母(a-z, A-Z)或*目前我正在使用以下代码片段进行验证:
import re
data = "asdsaq2323-asds"
if re.compile("[a-zA-Z0-9*]+").match(data).group() == data:
print "match"
else:
print "no match"
Run Code Online (Sandbox Code Playgroud)
我觉得应该有更好的方法来完成上述任务。我正在寻找类似以下的东西:
validate_func(pattern, data)
/* returns data if the data passes the validation rules */
/* return None if the data does not passes the validation rules */
/* should not return part of the data which matches the validation rules */
Run Code Online (Sandbox Code Playgroud)
是否存在这样的内置函数?
在正则表达式中,元字符^和$分别表示“字符串开头”和“字符串结尾”;因此,您可以简单地要求正则表达式匹配整个字符串,而不是查看匹配的内容并将其与整个字符串进行比较:
import re
data = "asdsaq2323-asds"
if re.compile("^[a-zA-Z0-9*]+$").match(data):
print "match"
else:
print "no match"
Run Code Online (Sandbox Code Playgroud)
此外,由于您只使用正则表达式一次 - 您编译它并立即使用它 - 您可以使用便捷方法re.match将其作为一个步骤来处理:
import re
data = "asdsaq2323-asds"
if re.match("^[a-zA-Z0-9*]+$", data):
print "match"
else:
print "no match"
Run Code Online (Sandbox Code Playgroud)