【发布时间】:2018-04-24 06:22:03
【问题描述】:
我正在尝试准备控制台参数的重复模式
通过 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 |$)? -
@WiktorStribiżew 是的 - 让它成为答案 :)
-
@WiktorStribiżew 我一直认为 .+ 等同于 .*?您愿意告诉我将它与 + 一起使用有什么区别吗?
-
好吧,如果应该至少有一个字符,请使用
+?。否则,请使用*?
标签: c# regex regex-lookarounds