Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式2个数字,用逗号分隔,并非全部必需_Regex - Fatal编程技术网

Regex 正则表达式2个数字,用逗号分隔,并非全部必需

Regex 正则表达式2个数字,用逗号分隔,并非全部必需,regex,Regex,我需要用于以下输入的正则表达式: [2位],逗号,[两位],逗号,[两位] 这两个数字不能以0开头。只允许输入前2位数字。或者输入前两位数字,然后输入逗号,然后输入下两位数字。或如上所述输入完整字符串 有效输入为: 10 99 17,56 15,99 10,57,61 32,44,99 谁能帮我弄一下这个正则表达式吗 目前我有这个正则表达式,但它没有将输入限制为最多3组2位数: ^\d{2}(?:[,]\d{2})*$ 第一部分([1-9]\d)只是第一个数字,它必须始终存在。它由非零位和任意

我需要用于以下输入的正则表达式:

[2位],逗号,[两位],逗号,[两位]

这两个数字不能以0开头。只允许输入前2位数字。或者输入前两位数字,然后输入逗号,然后输入下两位数字。或如上所述输入完整字符串

有效输入为:

10
99
17,56
15,99
10,57,61
32,44,99

谁能帮我弄一下这个正则表达式吗

目前我有这个正则表达式,但它没有将输入限制为最多3组2位数:

^\d{2}(?:[,]\d{2})*$
第一部分(
[1-9]\d
)只是第一个数字,它必须始终存在。它由非零位和任意第二位组成(
\d

下面是一个非捕获组(
(?:…)
),包含一个逗号,后跟另一个两位数(
,[1-9]\d
),与第一个相同。这个组可以在零到两次之间重复(
{0,2}
),因此可以得到一个逗号和另一个数字的一个或两个序列


您可以轻松地展开大括号中的部分,以允许更多允许的数字。

您不需要在单个字符周围使用
[]
。单个
与字符类
[,]
完全相同。根据经验,我发现安全总比后悔好。因此,我总是在诸如“,”,“$”#等特殊字符周围使用[],而不是特殊字符。正则表达式已经是一种难以阅读/理解的语言,因此在已经复杂的表达式中添加不必要的字符是个坏主意。但是+1表示有效答案。谢谢,它有效。但是你能解释一下它到底是怎么工作的吗?是否有可能扩展我的正则表达式,使其按要求工作^\d{2}(?:[,]\d{2})*$@iar:您可以在注释中使用反勾号来格式化源代码。我认为iar希望这样:
^[1-9]\d(?,\d\d){0,2}$
感谢@Johannes Rössel解释我的代码@我不知道你到底在问什么。@stefita:没关系,我要求更改我(在我的问题中)提出的正则表达式,使其按要求工作@约翰内斯·罗塞尔:谢谢你的解释。
^[1-9]\d([,][1-9]\d){0,2}$
^[1-9]\d([,][1-9]\d){0,2}$