正则表达式:如何捕获这个?(重复组内的嵌套组)

Dev*_*abc 6 java regex

如何解决这个Java正则表达式问题?

输入:

some heading text... ["fds afsa","fwr23423","42df f","1a_4(211@#","3240acg!g"] some trailing text....

问题:我想捕获双引号之间的所有内容.(例如:fds afsa,fwr23423等)

我尝试过以下模式:

\[(?:"([^"]+)",?)+\]

但是当执行Matcher.find()时,它会导致StackOverflowError,当使用更大的输入时(但是对于小输入有效,这是Java中的错误).即使它确实有效,matcher.group(1)也只会给出"3240acg!g".

我该如何解决这个问题?(或者是否需要使用多个图案,其中第一个图案剥离括号?)

Zer*_*ike 1

获取之间的字符串[ ],然后用逗号分隔。这容易多了。