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