我想要一个字符串,它必须放在括号中()
并用逗号分隔,,
例如:(aaa),(bbbb),(cccccccc)
我怎么能用正则表达式匹配呢?
你可以试试这个
^(?!,)(,?\(\w+\))+$
^
标记字符串的开始
$
标记字符串的结尾
两者^
,$
都是必需的,否则它会在两者之间匹配
\w+
匹配 1 到多个 [a-zA-Z\d_]
,?
可以选择匹配,
^(?!,)
将,
在字符串的开头查找,如果找到,则不再匹配。如果没有找到,则返回上一个位置,即字符串的开头
这应该这样做:
/^\(([^)])\1*\)(?:,\(([^)])\2*\))*$/
对重复的字符使用反向引用,在它们周围转义括号,并允许它后面多次跟随相同的东西- 用逗号分隔。全部固定在整根弦上。
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.