Regex 当我不希望正则表达式匹配引号时,它正在匹配引号

Regex 当我不希望正则表达式匹配引号时,它正在匹配引号,regex,Regex,这里是演示的链接 选择JavaOne并查看输入。您可以提供带引号或不带引号的参数。但是,当正则表达式捕获组时,我不希望它捕获括在引号中的参数的引号。这很让人困惑,因为引号不在括号内,所以我不知道为什么它们会被捕获 我怎样才能解决这个问题 编辑: 为了澄清,我希望输出如下所示: hello-world hi this is \" \\ sparta 如果不希望捕获双引号,则需要避免使用零宽度断言匹配双引号-lookarounds: (?<=")(?!\s+")(?:[^\\"]+|\\"

这里是演示的链接

选择JavaOne并查看输入。您可以提供带引号或不带引号的参数。但是,当正则表达式捕获组时,我不希望它捕获括在引号中的参数的引号。这很让人困惑,因为引号不在括号内,所以我不知道为什么它们会被捕获

我怎样才能解决这个问题

编辑:

为了澄清,我希望输出如下所示:

hello-world
hi
 this is \"
\\
sparta

如果不希望捕获双引号,则需要避免使用零宽度断言匹配双引号-lookarounds:

(?<=")(?!\s+")(?:[^\\"]+|\\")+(?=")|[^"\s]+

(?请在此处发布您的示例和预期输出Java不支持
分支重置(?|)
(如果支持,这将太容易了)…我们可以使用lookback和lookahead,但将拾取一些额外的数据