我需要一个关于以下值的正则表达式:
Ha2:123hD,Ha2:123hD,Ha2:123hD - correct match - true
Ha2:123hD,Ha2:123hD,Ha2:123hD, - comma on end - false
Ha2:123hD,Ha2:123hD,Ha2:123hD,,Ha2:123hD - double comma- false
,Ha2:123hD,Ha2:123hD,Ha2:123hD - comma at start- false
我正在尝试以下正则表达式:
/(([a-zA-Z0-9]+)(\W)([a-zA-Z0-9]+))/
/(([a-zA-Z0-9]+)(\W)([a-zA-Z0-9]+,)*([a-zA-Z0-9]+)(\W)([a-zA-Z0-9])+$)/
但它没有用。
答案 0 :(得分:0)
如果您只需要检查这些修正字符串(我必须从您的问题中猜出),这将有效^(Ha2:123hD,)*Ha2:123hD$
否则,您只需遵循此表达式并将Ha2:123hD
替换为您的通配符表达式。
同时查看本网站: method object 它很好地解释了正则表达式的单个符号是如何工作的。
答案 1 :(得分:0)
要仅匹配逗号分隔的字母数字+ :
字符串列表,您可以使用
/^[a-zA-Z0-9:]+(?:,[a-zA-Z0-9:]+)*$/
请参阅regex demo
<强>解释强>:
^
- 字符串锚的开始[a-zA-Z0-9]+
- 匹配1个或更多的字符类(由于+
量词)
ASCII字母或数字或:
(?:
- 开始一个非捕获组....
,
- 逗号[a-zA-Z0-9:]+
- 匹配1个或多个(由于+
量词)ASCII字母或数字或:
)*
- ....出现0次或更多次(由于*
量词)$
- 字符串结束。答案 2 :(得分:0)
您可以将逗号放在重复组的开头。
/^[a-zA-Z0-9]+[:][a-zA-Z0-9]+(?:,[a-zA-Z0-9]+[:][a-zA-Z0-9]+)*$/