正则表达式匹配以下条件

时间:2018-04-02 15:40:09

标签: regex

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

string, or ,string, or ,string

我试过这个但是没有工作:

^[,]string[,]$

/^(?:\,string\,)$/

1 个答案:

答案 0 :(得分:0)

我假设您在这三种情况中的任何一种情况下都能找到真正的结果,即您不需要区分哪些情况与逗号实际出现的位置有关。< / p>

如果您不需要提取&#34;字符串&#34;匹配的值,然后这应该工作:

^(,string|,string,|string,)$

(|)是OR构造。

如果您确实要提取使用捕获匹配的字符串,则以下内容应该可以正常工作

^(,(\w+)|,(\w+),|(\w+),)$

并且您的匹配字符串将被捕获为匹配组2,3或4.显然,我对允许出现在&#34;字符串&#34;中的内容做出了一些假设。这里的值(= \ w + =只有一个或多个字母数字和下划线),但如果需要,你应该能够修改正则表达式的那一部分。

我在http://rubular.com/r/qyGGjHcC59使用Rubular测试对此进行了实验。如果在某处有一个Java等效的RE测试工具,请使用它,但可能不需要,因为这是你在这里使用的RE的一个非常标准的部分。