正则表达式匹配零和逗号

时间:2018-01-22 15:16:22

标签: regex string comma

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

0, ,0,

我尝试过一些变化,但无济于事:

^[0,]+$

^[0,]

非常感谢任何建议。

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

0, ,0,

这些条目也可以这样读:

1, ,0,

所以我正在寻找的理想正则表达式会扫描"它是以1还是0开头,然后是逗号,然后是空格,然后是逗号,然后是数字(0-9),最后是一个逗号。"

进一步的例子:

0, ,8,
1, ,5,

我希望这有助于澄清请求。

谢谢,

4 个答案:

答案 0 :(得分:2)

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

你的字符串中有一个空格,所以你需要匹配它。

答案 1 :(得分:1)

您的问题并未提及特定的正则表达式实施,因此您收到的答案可能对您不起作用。 (课程:始终指定您计划使用此环境的环境。)

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

[0,]+

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

在某些实现中,匹配和捕获是单独的概念。也许你想在这个正则表达式周围添加括号来指定你想要捕获(而不仅仅是匹配)这个正则表达式描述的输入中的字符串(在某些实现中,你想要添加一个标志 - 通常g - 说你想要所有比赛,而不仅仅是第一场比赛。

答案 2 :(得分:0)

您还需要捕获空格,例如\s

^[0,\s]+$

\s将匹配所有空格字符,相当于[\r\n\t\f\v ]

在此处查看结果:https://regex101.com/r/g3faWA/1

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

[0,\s]+

答案 3 :(得分:0)

正则表达式^(?:[0 ],)+$^(?:[0\s],)+$

<强>详情:

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

Regex demo