正则表达式
Regex
中级通用正则表达式(Regex)是一种用模式描述文本特征的方法,能查找、提取或判断字符串是否符合指定形式。比如网站要求订单号由两个大写字母、一个连字符和四位数字组成,就可以用正则表达式检查格式。
你可能会说:「我想让订单号只能是两个大写字母、一个横杠和四位数字,其他输入都提示格式不对。」
读之前建议先了解
动手看看从客服消息里找出订单号
匹配到 2 处
捕获分组
正则是一段「描述文字长什么样」的规则:这里写的是「# 后面跟 4 位数字、短横线、再 4 位数字」,所以电话号码不会被误认成订单号。
括号会把匹配到的一部分单独取出来(捕获分组):$1 是年份、$2 是编号。试试把 \d{4} 改成 \d+,看看会多匹配到什么。
关掉 g(全部匹配),只会找到第一个订单号;写错括号时下方会直接显示错误原因。
要点正则表达式怎么描述一段文本?
- 1
把固定内容和变化位置组合起来
你可以把模式理解成文本的形状:连字符照原样写,字母和数字的位置用规则表示,再写明各自出现几次。这样一个模式就能覆盖许多不同的订单号,不用逐个列出。
- 2
区分找到片段和检查整体
正则表达式默认可能只找到输入中的一段匹配内容。因为订单号校验要检查整个输入,所以还要限定从开头到结尾都符合模式;否则前后多出字符,也可能被误判为通过。
- 3
把规则范围和测试样例说清
同一种格式可能有不同解释,比如“大写字母”是否只指英文字母。你和 AI 协作时,把允许的字符、长度,以及该通过和不该通过的样例一起给出,更容易发现规则写偏了。
容易混淆的地方
正则表达式描述的是文本形式,不等于完整的数据校验。它能判断订单号看起来是否符合格式,却不能证明订单存在、没有重复或属于当前用户;这些还要查业务数据。它也不只是普通的文本搜索:普通搜索找固定字词,正则表达式还能描述一类会变化的文本。
什么时候用
适合用
- 网站表单要检查用户填写的兑换码,格式固定,但每个兑换码的字符不同。
- 后台导入一批记录时,要从说明文字中找出符合约定格式的工单编号。
- 编辑器里要批量定位某类旧字段名,先预览匹配结果,再进行替换。
不适合用
- 要判断兑换码是否真实、是否已使用时,格式匹配不够,改查数据库和使用记录。
- 要读取有明确字段的 JSON 响应时,直接解析 JSON,比从原始文本里用正则抓字段可靠。
- 用户只是从几个固定状态中选一个时,用选项列表和枚举值判断,不必分析文本模式。
练一练选一个答案,看看解释
你在做售后后台,工单号规定为两个英文字母大写、一个连字符、四位数字。AI 要实现输入校验,哪种方案最贴合需求?
让 AI 帮你做复制给 AI Agent 直接用
请为售后后台的工单号输入编写正则表达式校验:完整输入只能是两个大写英文字母、一个连字符、四位数字。请同时提供通过和不通过的测试用例;格式校验与工单是否存在的查询分开实现。