【发布时间】:2018-04-13 01:13:45
【问题描述】:
我正在尝试用一个正则表达式匹配多个值。
我想提取标志和值(如果存在),但是我想为用户提供以多种不同方式键入标志的能力。
npm start search
npm start search=test-string
npm start search="test"
npm start search='test'
npm start search="test, test-string"
npm start search=' test,test '
我希望能够剖析标志和= 之后的值,在相等之后它可以是一个单词或多个值,由单引号或双引号中的逗号分隔。
这是我尝试过的
(^[^=]+)\=([^'"].*)?
(粗体)是我要匹配的内容,第 1 组是关键字,第 2 组是可选的搜索值。
npm 开始 搜索
npm start 搜索=测试字符串
npm start 搜索="测试"
npm start 搜索='测试'
npm start search="test, test-string"
npm start 搜索=' test,test '
我尝试过使用负前瞻和后置,但一直失败......
【问题讨论】:
-
=应该是可选的吗? -
是的,标志的值大小是可选的,标志可以不存在值(=)
-
=后面没有?,所以不是可选的。 -
我知道,但它不在匹配组中,第一个匹配将匹配所有内容,直到 = 符号
-
但是如果
=不匹配,根本就没有匹配,所以没有设置捕获组。
标签: javascript regex string negative-lookahead