匹配`" abc"," d,e","",",f"`与群组

时间:2015-12-23 13:18:21

标签: regex

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

"abc", "d,e"  , "", ",f"

这样,群组abcd,e,``和,f(不带引号)会分别匹配。

使用小组

"([^"]*)"

匹配"abc"位,我假设正则表达式

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

会做到这一点。但是,它只匹配abcd,e

我已创建显示行为的a toy example at regex101

任何提示?

2 个答案:

答案 0 :(得分:3)

你想让“跟随”组可选:

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

<强> Live demo

更新#1

Cleaner RegEx:

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

更新#2

根据您上次编辑包含零个或多个字符:

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

<强> Live demo

答案 1 :(得分:1)

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

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

Live Demo

这也将获得"abc" , "d,e" , "", ",f"的正确匹配。