AI 写的编号正则怎么验收?区分整串匹配、ASCII 数字和反例

AI 写出的 \d+ 不一定只接受0到9,搜索到一段编号也不等于整个输入有效。先明确编号允许的字符,再用正常与异常样本验收正则。

AI 写出的 \d+ 不一定只接受0到9,搜索到一段编号也不等于整个输入有效。先明确编号允许的字符,再用正常与异常样本验收正则。

用AI生成正则校验业务编号的读者。本文使用 Python 3.11 或以上版本的标准库,先验证一组人工构造的小样本。AI 负责提出实现或解释差异,结果由本地检查决定;这里没有把模型回答当成真实运行结果。

AI 写的编号正则怎么验收?区分整串匹配、ASCII 数字和反例

验证编号正则的匹配边界前,先定规则

本例编号只能是INV-加四个ASCII数字,不允许空格、小写前缀、全角数字或结尾换行。规则足够窄,读者能手工判断每个样本。

匹配器使用fullmatch,避免search在“说明INV-0123末尾”中找出局部字符串。字面字符类[0-9]把ASCII边界写在代码里。

测试不只给长度错误,还提供Unicode数字与换行。它们分别检验字符类别和全串范围,是AI常忽略的两类边界。

给 AI 的输入要包含什么

把下面这份输入说明和你的实际样本一起交给可用的 AI 编程助手。示例只含虚构数据;对真实材料先去除账号凭据和个人信息。

生成Python编号校验:只接受INV-后四位ASCII数字;必须整串匹配,不允许换行和空格;不要用search。测试INV-0001、INV-1234、INV-1234换行、说明INV-1234、inv-1234。逐项列预期。

要求模型保留检查条件,并把它认为缺少的业务定义列出来。若回答改变了输入字段、忽略异常分支或直接删除原材料,先要求修正,再运行。提示词的作用是缩小任务范围,验收仍以代码和数据为准。

保存并运行最小验证程序

下方程序把关键规则和验证用例放在同一个可复跑示例中,便于先理解输入如何变成输出,再用它检查 AI 给出的实现。

新建一个空目录,把下面代码保存为 check.py,在该目录打开终端,运行 python -X utf8 check.py。代码自带示例输入,不需要安装第三方库。

import re
pattern=re.compile(r'INV-[0-9]{4}')
cases=[('INV-0001',True),('INV-1234',True),('INV-1234',False),('INV-1234\n',False),('说明INV-1234',False),('inv-1234',False),('INV-12345',False)]
for value,want in cases:
    got=pattern.fullmatch(value) is not None
    assert got==want,(value,got,want)
    print(repr(value),got)
assert re.fullmatch(r'\d{4}','1234') is not None
print('unicode_digit_demo',True)

怎样判断结果符合要求

前两个样本为True,其余编号样本为False。最后的unicode_digit_demo展示全角数字会被默认\d接受,说明字符类选择会改变业务范围。

下方是这份最小示例在本地执行得到的输出。它验证示例程序与断言的关系,不代表任何 AI 模型一次就能生成同样代码,也不构成性能或生产可靠性结论。

'INV-0001' True
'INV-1234' True
'INV-1234' False
'INV-1234\n' False
'说明INV-1234' False
'inv-1234' False
'INV-12345' False
unicode_digit_demo True

repr会把换行显示成转义字符,避免终端输出折行后看不出输入差异。审查AI回答时也保留输入的明确表示。

校验与提取是不同动作。一个用于文本提取的正则可能正确,却不适合验证字段。

哪些失败必须停下来处理

如果业务要求先去掉空格再校验,必须单独记录清洗步骤,不能让strip掩盖原始输入异常。

该正则只检查格式,不证明发票或编号真实存在,也不检查校验位。

不要把任意用户输入拼进正则。复杂嵌套模式和长文本需另测资源消耗,本文固定模式不覆盖所有正则安全问题。

接入自己的任务前再核对一次

把真实误判输入脱敏后加入用例,并让AI解释是字符、范围还是长度规则失误。

如果编号规范变了,先更新正反样本与文档,再重新生成模式。保留原值和拒绝原因供人工复核。

资料与适用范围

re.fullmatch要求整个字符串匹配;Python字符串模式中的\d默认包括Unicode十进制数字。以下链接核对于 2026-10-03;运行环境及额外依赖按本文前述说明。

相关基础可阅读 用ChatGPT写正则表达式:完整教程与注意事项。本文的重点是验证编号正则的匹配边界,可以把两项检查作为不同步骤保留。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33334.html

赞 (0)
AI小管家的头像AI小管家
多智能体通信拓扑怎么检查?用有向图区分能传到与能传回来
上一篇 6小时前
文件去重智能体怎么避免误删?按内容哈希输出重复组,先保留全部文件
下一篇 6小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部