gpt4 book ai didi

javascript - 字符串上的正则表达式多重匹配

转载 作者:行者123 更新时间:2023-11-28 13:01:46 25 4
gpt4 key购买 nike

我正在尝试使用一个正则表达式来匹配多个值。

我想提取标志和值(如果存在),但是我想为用户提供以多种不同方式键入标志的能力。

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 搜索="测试,测试字符串"

npm start 搜索='测试,测试'

我尝试过使用负前瞻和后瞻,但一直失败......

最佳答案

您需要将 = 设置为可选。

如果您希望允许在值周围使用引号,但不将其包含在第二个捕获组中,请将引号放在捕获组之前,并将其设为可选。然后匹配捕获组内除引号之外的任何内容。

^([^=\n]+)=?['"]?([^'"\n]*)

DEMO

在演示中,我从字符串中删除了引号,因为这些引号是由 shell 解析的,而不是传递给 npm。我还必须将 \n 放入 [^] 中,这样它就不会跨多行匹配。

关于javascript - 字符串上的正则表达式多重匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49807911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com