我试图匹配传递给curl命令的所有参数,如下所示:
curl -X POST --pro2gress -c --command=ASD --dos pl -slp "asd" --asdeee "asd "hh" s" "string"
curl (-X POST) (--pro2gress) (-c) (--command=ASD) (--dos pl) (-slp "asd") (--asdeee "asd "hh" s") "string"
到目前为止,我已经匹配了从——asdeee到string"
的所有组。/-{1,2}[dw-]+[ =]+[^-]*/g
我正在寻找一种从";不停在"
希望有人能给我指出正确的方向。
(Edit)语言为javascript
谢谢!
要匹配所有选项,请使用:
--?S+(?:[ ]+(?!-)(?:[w-]+|(?<!\)"(?:\"|[^"rn])*+"))?
看演示。
对于JavaScript(没有所有格量词,没有向后看),您可以使用以下lite
版本:
var regex = /--?S+(?:[ ]*(?!-)(?:w+|"(?:\"|[^"rn])*"))?/g;
看演示。
-
--?
匹配一个或两个连字符 -
S+
匹配任何非空白字符(空格,制表符等) - 非捕获组
(?:[ ]*(?!-)(?:[w-]+|"(?:\"|[^"rn])*"))?
可选地匹配… -
[ ]+(?!-)
空格字符后面没有连字符,然后 -
[w-]+
任意数量的连字符和单词字符(包括数字),或|
-
"(?:\"|[^"rn])*"
一个双引号字符串,可以包含转义引号