Regex 匹配`";“abc”&引用;d、 e‘&引用&引用&引用;,f";`分组

Regex 匹配`";“abc”&引用;d、 e‘&引用&引用&引用;,f";`分组,regex,Regex,我想要正则表达式匹配字符串 "abc", "d,e" , "", ",f" 使组abc、d、e、``和、f(不带引号)分别匹配 与团体 "([^"]*)" 匹配“abc”位,我假设正则表达式 (?:\s*"([^"]*)"\s*,)\s*"([^"]*)"\s* 我会成功的。但是,它只匹配abc和d,e 我已经创建了一个显示行为的 有什么提示吗?您希望将“以下”组设置为可选组: (?:\s*"([^"]*)"\s*)(?:,\s*"([^"]*)"\s*)? 更新#1 清洁正则表达式

我想要正则表达式匹配字符串

"abc", "d,e"  , "", ",f"
使组
abc
d、e
、``和
、f
(不带引号)分别匹配

与团体

"([^"]*)"
匹配
“abc”
位,我假设正则表达式

(?:\s*"([^"]*)"\s*,)\s*"([^"]*)"\s*
我会成功的。但是,它只匹配
abc
d,e

我已经创建了一个显示行为的

有什么提示吗?

您希望将“以下”组设置为可选组:

(?:\s*"([^"]*)"\s*)(?:,\s*"([^"]*)"\s*)?

更新#1 清洁正则表达式:

/\s*"([^"]+)"(?:,\s*)?/g
更新#2 根据您上次编辑的包含零个或多个字符:

/\s*"([^"]*?)"(?:,\s*)?/g

与revo的答案几乎相似,但这里是我的正则表达式:

/(?:"([^"]*)")(?:\s*,\s*)?/g


这将获得正确匹配的
“abc”、“d、e”、“e”、“f”

您需要
g
-全局标志或
findAll
matchAll
或第一个正则表达式上的类似内容。检查。您使用什么语言执行正则表达式?我认为可以这样说,most将为您提供“下一个匹配”的上下文,在这种情况下,我认为您可以使用您的第一个示例-
”([^“]*)“
,并反复调用
get next match
,只要还有匹配项。您到底需要匹配什么?确切地说是您发布的字符串,或者每个带有单词或字母的字符串都被引号中的“,”所除?引号中的字符串可以是空的,因此将更新中相应的
*
替换为
+
是正确的。