2

我想要一个字符串,它必须放在括号中()并用逗号分隔,,例如:(aaa),(bbbb),(cccccccc)

我怎么能用正则表达式匹配呢?

4

3 回答 3

5

你可以试试这个

^(?!,)(,?\(\w+\))+$

^标记字符串的开始

$标记字符串的结尾

两者^,$都是必需的,否则它会在两者之间匹配

\w+匹配 1 到多个 [a-zA-Z\d_]

,?可以选择匹配,

^(?!,),在字符串的开头查找,如果找到,则不再匹配。如果没有找到,则返回上一个位置,即字符串的开头

于 2013-06-06T13:42:43.827 回答
1

这应该这样做:

/^\(([^)])\1*\)(?:,\(([^)])\2*\))*$/

重复的字符使用反向引用,在它们周围转义括号,并允许它后面多次跟随相同的东西- 用逗号分隔。全部固定在整根弦上。

于 2013-06-06T13:38:50.437 回答
0

This regex

\(([^\)])\)

will match everything that's inside parethenses. You can use it to find submatches or whatever you need.

I suggest you first tokenize, saving in different variables what's separated by commas, and then use the regular expression to match what's inside the parentheses.

于 2013-06-06T13:35:55.180 回答