regex 如何对文字字符串求反

h4cxqtbf  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(111)

我试图匹配传递给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 TO string” 中的组以外的所有内容

/\-{1,2}[\d\w\-]+[\ \=]+[^\-]*/g

我在寻找一种方法,从“到”看,而不停留在一个“
希望有人能给我指明方向。

**(编辑)**语言为javascript

谢谢!

oiopk7p5

oiopk7p51#

要匹配所有选项,请使用以下命令:

--?\S+(?:[ ]+(?!-)(?:[\w-]+|(?<!\\)"(?:\\"|[^"\r\n])*+"))?

参见demo
对于JavaScript(没有所有格量词,没有lookbehind),你可以使用这个lite版本:

var regex = /--?\S+(?:[ ]*(?!-)(?:\w+|"(?:\\"|[^"\r\n])*"))?/g;

参见demo

  • --?匹配一个或两个连字符
  • \S+匹配任何非空白字符(空格、制表符等)
  • 非捕获组(?:[ ]*(?!-)(?:[\w-]+|"(?:\\"|[^"\r\n])*"))?可选地匹配…
  • [ ]+(?!-)空格字符后面不跟连字符,则
  • [\w-]+任意数量的连字符和单词字符(包括数字),或|
  • "(?:\\"|[^"\r\n])*"双引号字符串,可能包含转义引号

相关问题