regex 匹配短格式或全格式命令行选项

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

我想匹配-v--verbose的任何组合,包括像-vd path-av这样的东西,但不想匹配除短格式选项之外的任何东西与v--verbose本身。到目前为止,我有以下内容:

--verbose|-[^-]v

字符串
下面是一些匹配的示例:

-v
-vv
-vd path -v
-vd path --version
--skip-dependencies -vd path --version
-vd path --verbose
-av
-vvv
--verbose


目前,唯一匹配的内容如下:

  • -vv
  • -vvv的第一个-vv
  • --verbose
  • -av

我还想匹配-v、整个-vvv-vd

2wnc66cl

2wnc66cl1#

您可以使用该模式的更具体版本:

--verbose\b|(?<!\S)-(?:a?v+|v+d)\b

字符串

说明

  • --verbose\b匹配--verbose,后跟字边界,以防止部分字匹配
  • |
  • (?<!\S)负向后查找,在左侧Assert空白边界
  • -按字面匹配
  • (?:a?v+|v+d)匹配一个可选的a字符后接1+次v字符,或者匹配一个v字符后接1+次d字符
  • \b A字边界

请参见regex demo

相关问题