Regex 正则表达式匹配零和逗号

Regex 正则表达式匹配零和逗号,regex,string,comma,Regex,String,Comma,我正在寻找将捕获以下文本的正则表达式字符串: 0, ,0, 我尝试了一些变化,但没有效果: ^[0,]+$ ^[0,] 如有任何建议,将不胜感激 编辑: 这将在另一个使用Perl进行正则表达式模式匹配的程序中使用。程序读取包含条目列表的文件。在程序中使用不同的配置文件,我需要选择如下所示的条目: 0, ,0, 这些条目也可以这样读: 1, ,0, 因此,我要寻找的理想正则表达式是扫描“它是以1或0开头,紧接着是逗号,然后是空格,然后是逗号,然后是数字(0-9),最后是逗号。” 其他例子

我正在寻找将捕获以下文本的正则表达式字符串:

0, ,0,
我尝试了一些变化,但没有效果:

^[0,]+$

^[0,]
如有任何建议,将不胜感激

编辑: 这将在另一个使用Perl进行正则表达式模式匹配的程序中使用。程序读取包含条目列表的文件。在程序中使用不同的配置文件,我需要选择如下所示的条目:

0, ,0,
这些条目也可以这样读:

1, ,0,
因此,我要寻找的理想正则表达式是扫描“它是以1或0开头,紧接着是逗号,然后是空格,然后是逗号,然后是数字(0-9),最后是逗号。”

其他例子:

0, ,8,
1, ,5,
我希望这有助于澄清这一要求

谢谢

(?:[0\s]+,)+

您的字符串中有一个空格,因此您需要\s来匹配它。

您还需要使用,例如,
\s
:

^[0,\s]+$
\s
将匹配所有空格字符,并等效于
[\r\n\t\f\v]

请参见此处的“行动结果”:


如果要匹配行中包含0和逗号的部分(即使该行包含其他字符),也可以删除行分隔符(
^
$
)。这将使:

[0,\s]+

Regex
^(?[0],)+$
^(?[0\s],)+$

详细信息

  • ^
    断言字符串开头的位置
  • (?:)
    非捕获组
  • []
    匹配列表中的单个字符
  • +
    在一次和无限次之间匹配
  • $
    断言字符串末尾的位置
  • \s
    匹配任何空白字符

您的问题没有提到特定的正则表达式实现,因此您收到的答案可能不适合您。(课程:始终指定要在其中使用此功能的环境。)

在任何合理的现代正则表达式变体中

[0,]+
匹配一个或多个字符的序列。字符类
[abc]
匹配方括号内枚举字符之一的单个字符,量词
+
表示尽可能多地匹配前面的表达式,但至少匹配一次


在某些实现中,匹配和捕获是独立的概念。也许您希望在此正则表达式周围添加括号,以指定您希望捕获(而不仅仅是匹配)此正则表达式描述的输入中的字符串(在某些实现中,您希望添加一个标志-通常是
g
-表示您希望所有匹配,而不仅仅是第一个匹配)。

如果示例具有代表性,你的问题是要求对手单独排队。首先,尝试删除
^
$
,然后如果结果仍然不符合您的要求,可能会改进您的问题。您应该提供多个输入及其预期输出。您打算使用哪种风格的正则表达式?您真的是指捕获,还是仅仅匹配即可?从多个答案中可以看出,对于示例中的空格是否是示例的一部分,存在混淆。我假设您的标题是描述性的,SOACE不是示例的一部分;但你真的需要回答你的问题,以使这一点清晰明了。