Regex 符合以下条件的正则表达式

Regex 符合以下条件的正则表达式,regex,Regex,我正在尝试构建一个正则表达式: 查找字符串的开头是字符串后跟逗号,还是逗号后跟字符串后跟逗号,或者逗号后跟字符串结尾的字符串 字符串,或,字符串,或,字符串 我尝试过这个,但不起作用: ^[,]string[,]$ 及 我假设在这三种情况中的任何一种情况下,你都会满足于一个真实的结果,也就是说,你不需要区分哪种情况下逗号实际出现的位置是正确的 如果不需要提取匹配的字符串值,那么这应该可以: ^(,string|,string,|string,)$ |是一个或构造 如果您确实希望提取使用捕获匹

我正在尝试构建一个正则表达式: 查找字符串的开头是字符串后跟逗号,还是逗号后跟字符串后跟逗号,或者逗号后跟字符串结尾的字符串

字符串,或,字符串,或,字符串

我尝试过这个,但不起作用:

^[,]string[,]$


我假设在这三种情况中的任何一种情况下,你都会满足于一个真实的结果,也就是说,你不需要区分哪种情况下逗号实际出现的位置是正确的

如果不需要提取匹配的字符串值,那么这应该可以:

^(,string|,string,|string,)$
|是一个或构造

如果您确实希望提取使用捕获匹配的字符串,那么以下操作应该可以工作

^(,(\w+)|,(\w+),|(\w+),)$
匹配的字符串将被捕获为匹配组2、3或4。显然,我正在对这里的字符串值中允许出现的内容做一些假设=\w+=仅一个或多个字母数字和下划线,但是如果需要,您应该能够修改regexp的该部分


我用一个红细胞测试来做这个实验。如果某个地方有Java等效的重新测试工具,请改用它,但可能不需要,因为这是您在这里使用的相当标准的重新测试部分。

逗号在正则表达式中不是元字符。没有必要像将其放入字符范围那样对其进行转义或保护。请尝试。您使用的是什么编程语言?您的正则表达式无法工作,因为它们与描述不匹配。文本清楚地表明两个逗号中的一个可能丢失,但您的正则表达式要求字符串的开头和结尾都使用逗号。@WiktorStribiżew您的建议无效
^(,(\w+)|,(\w+),|(\w+),)$