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不是示例的一部分;但你真的需要回答你的问题,以使这一点清晰明了。