正则表达式捕获可变长度的重复模式

时间:2017-11-10 23:25:46

标签: c# regex regex-lookarounds

我正在尝试准备一个重复的控制台参数模式 运行CommandLineParser(nuget)。我已经到了一半,但我无法将secondmatch作为个人匹配。

基本上我想做的是一个可链接的调用列表。

每次调用都应以-t

开头

我当前的正则表达式

(((?=-t ).+(?=-t ))|((?=-t ).+))

输入字符串:

-t fistarg -tfalsepositive -a wasdf- -t secondmatch -t thirdmatch

当前比赛:

-t fistarg -tfalsepositive -a wasdf- -t secondmatch

-t thirdmatch

预期比赛:

-t fistarg -tfalsepositive -a wasdf-

-t secondmatch

-t thirdmatch

1 个答案:

答案 0 :(得分:3)

您可以使用

-t .+?(?=-t |$)

请参阅regex demo

<强>详情

  • -t - -t子字符串
  • .+? - 一个空格,后跟任意1个字符(使用*?匹配0+字符),而不是换行符,尽可能少
  • (?=-t |$) - 一个积极的前瞻,确保当前位置右侧有一个-t子字符串或字符串结尾。