如何匹配此字符串' - , - , - ,9, - '?

时间:2015-05-25 13:13:53

标签: regex preg-match regex-negation

我被告知要验证字符串-,-,-,9,-

它由,分隔,包含1个数字(0-9),其他都是-

一些例子:

9,-,-,-,-

-,-,-,-,9

-,-,2,-,-

我该如何匹配?我应该在正则表达式中学到什么概念?

更新

我想念时间,对不起,这个字符串只能包含5个部分,所以长度只能是9,这意味着下面的字符串不应该通过:

-,-,9,-,-,-

当然,它应该只有一个数字。

2 个答案:

答案 0 :(得分:2)

^(?=\D*\d\D*$)[0-9-](?:,[0-9-]){4}$

你可以尝试一下。参见演示。

https://regex101.com/r/nM7nT5/5

答案 1 :(得分:2)

这确保字符串必须至少包含一个逗号和一个数字。

^(?:\d(?:,-)+|-(?:,-)*,\d(?:,-)*)$

DEMO

^(?=\D*(?:^|,)\d(?:,|$)\D*$)[\d-](?:,[\d-])+$

DEMO