如何使用正则表达式验证符合指定规则的请求字符串?
如何验证特定格式的item关联字符串?
验证规则
- 字符串不能为空
- 单个item必须以
item-开头,后面跟由大小写字母(a-z、A-Z)和数字(0-9)组成的唯一标识符 - 多个item只能通过
*连接,不允许其他分隔符
核心验证方案:正则表达式
直接用以下正则表达式即可完成全量验证:
^item-[a-zA-Z0-9]+(?:\*item-[a-zA-Z0-9]+)*$
正则逻辑拆解
^:锁定字符串开头,避免前缀有多余字符item-:固定匹配每个item的起始标识[a-zA-Z0-9]+:匹配至少一个字母或数字,对应item的唯一ID部分(保证ID非空)(?:\*item-[a-zA-Z0-9]+)*:非捕获组,支持0次或多次“*+完整item”的结构,实现多item关联的匹配$:锁定字符串结尾,避免后缀有多余字符
验证步骤
- 先判断字符串是否为空,为空直接标记无效
- 用上述正则匹配整个字符串,完全匹配则有效,否则无效
示例测试
有效示例(均可匹配正则)
item-dsaK123item-dsaK123*item-Dslw123item-dsaK123*item-Dslw123*item-ABcd123item-dsaK132*item-Ddsw532
无效示例(均无法匹配正则)
item-dsaK132+item-Ddsw532*item-ABcd123:使用了非法分隔符+item-dsaK132+:结尾存在非法字符+- 空字符串:违反非空规则
内容的提问来源于stack exchange,提问作者George Go
相关产品推荐
相关产品推荐

