我正在尝试准备控制台参数的重复模式
通过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

最佳答案

您可以使用

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


请参见regex demo

细节


-t-一个-t子字符串
.+?-除换行符外的空格,后跟任意1个以上的字符(使用*?匹配0个以上的字符),并且尽可能少
(?=-t |$)-一个正向超前查询,可确保在当前位置的右侧紧接有一个-t子字符串或字符串结尾。

关于c# - 正则表达式捕获可变长度的重复模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47232650/

10-12 02:55