正则表达式验证此字符串

问题描述 投票:0回答:1

假设我想验证请求

item-dsaK123 - request
item-dsaK123*item-Dslw123 - request
item-dsaK123*item-Dslw123*item-ABcd123 - request
item-dsaK132*item-Ddsw532 - request

如何验证这些字符串:

  • 没有空字符串
  • 每个项目必须以中间带有破折号的项目开头,并且唯一标识符由 a-z、A-Z、随机顺序的数字组成。
  • 每个项目可以串联以显示关系,但之间用“*”分隔。

有效:

item-dsaK123 
item-dsaK123*item-Dslw123 
item-dsaK123*item-Dslw123*item-ABcd123 
item-dsaK132*item-Ddsw532 

无效:

item-dsaK132+item-Ddsw532*item-ABcd123 
item-dsaK132+
""(empty string)
regex regex-group
1个回答
0
投票

您可以使用此正则表达式,它匹配包含一个项目的字符串,后跟 0 个或多个

*
,后跟另一个项目:

^item-[a-zA-Z0-9]+(?:\*item-[a-zA-Z0-9]+)*\s?$

regex101

演示

注意,我在正则表达式上添加了尾随

\s?
,因为问题数据中的某些字符串以空格结尾。如果实际情况并非如此,您可以将其从正则表达式中删除。

© www.soinside.com 2019 - 2024. All rights reserved.