gpt4 book ai didi

Python:使用正则表达式进行数据验证

转载 作者:行者123 更新时间:2023-11-28 20:07:55 25 4
gpt4 key购买 nike

我正在尝试使用 Python 正则表达式 来验证变量的值。

验证规则如下:

  • 该值可以包含a-zA-Z0-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 */

是否存在这样的内置函数?

最佳答案

在正则表达式中,元字符 ^$ 分别表示“字符串开始”和“字符串结束”;因此,与其查看 什么 匹配并将其与整个字符串进行比较,您可以简单地要求正则表达式匹配整个字符串开头:

import re
data = "asdsaq2323-asds"
if re.compile("^[a-zA-Z0-9*]+$").match(data):
print "match"
else:
print "no match"

此外,由于您只使用一次正则表达式 — 您编译它并立即使用它 — 您可以使用方便的方法 re.match 将其作为一个步骤来处理:

import re
data = "asdsaq2323-asds"
if re.match("^[a-zA-Z0-9*]+$", data):
print "match"
else:
print "no match"

关于Python:使用正则表达式进行数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15580917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com