我正在尝试使用Python正则表达式来验证变量的值。
验证规则如下:
- 该值可以包含任何 a-z、A-Z、0-9 和 *(无空格,无 -,无 ,) - 该值可以以数字(0-9)、字母(a-z、A-Z)或 * 开头 - 该值可以以数字(0-9)、字母(a-z、A-Z)或 * 结尾 - 在中间,该值可以包含数字(0-9)、字母(a-z、A-Z)或 * - 不允许任何其他值
目前我正在使用以下代码片段进行验证:
有这样的内置函数存在吗?
验证规则如下:
- 该值可以包含任何 a-z、A-Z、0-9 和 *(无空格,无 -,无 ,) - 该值可以以数字(0-9)、字母(a-z、A-Z)或 * 开头 - 该值可以以数字(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"
我感觉应该有更好的方法来完成上述操作。我正在寻找类似以下的东西:
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 */
有这样的内置函数存在吗?
[\w\d\*]+
不够吗?最好的测试方法是使用一个大循环来测试您已经拥有的所有值(在列表/文件中)。当循环中的匹配失败时,您应该将其打印出来,并对其进行更多的研究以找出问题所在,并看看如何优化您的正则表达式。 - user1467267