标签: regex
我想正则表达式匹配字符串
"abc", "d,e" , "", ",f"
这样,群组abc,d,e,``和,f(不带引号)会分别匹配。
abc
d,e
,f
使用小组
"([^"]*)"
匹配"abc"位,我假设正则表达式
"abc"
(?:\s*"([^"]*)"\s*,)\s*"([^"]*)"\s*
会做到这一点。但是,它只匹配abc和d,e。
我已创建显示行为的a toy example at regex101。
任何提示?
答案 0 :(得分:3)
你想让“跟随”组可选:
(?:\s*"([^"]*)"\s*)(?:,\s*"([^"]*)"\s*)?
<强> Live demo 强>
Cleaner RegEx:
/\s*"([^"]+)"(?:,\s*)?/g
根据您上次编辑包含零个或多个字符:
/\s*"([^"]*?)"(?:,\s*)?/g
答案 1 :(得分:1)
几乎与revo的答案相似,但这是我的正则表达式:
/(?:"([^"]*)")(?:\s*,\s*)?/g
Live Demo
这也将获得"abc" , "d,e" , "", ",f"的正确匹配。
"abc" , "d,e" , "", ",f"