加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何使用Regex检查参数?

发布时间:2020-12-16 01:37:57 所属栏目:百科 来源:网络整理
导读:我坚持使用正则表达式.该程序是一个用C#编写的控制台应用程序.有一些命令.我想首先检查参数是否正确.我认为使用正则表达式会很容易,但不能这样做: var strArgs = "";foreach (var x in args){ strArgs += x + " ";}if (!Regex.IsMatch(strArgs,@"(-?|-help
我坚持使用正则表达式.该程序是一个用C#编写的控制台应用程序.有一些命令.我想首先检查参数是否正确.我认为使用正则表达式会很容易,但不能这样做:

var strArgs = "";

foreach (var x in args)
{
    strArgs += x + " ";
}
if (!Regex.IsMatch(strArgs,@"(-?|-help|-c|-continuous|-l|-log|-ip|)* .{1,}"))
{
    Console.WriteLine("Command arrangement is wrong. Use "-?" or "-help" to see help.");
    return;
}

用法是:

program.exe [-options] [domains]

问题是,程序接受所有命令.另外我需要检查“ – ”前缀命令是否在域之前.我认为这个问题并不难解决.

谢谢…

解决方法

既然您最终还是会编写一个switch语句来处理选项,那么最好在那里进行检查:

switch(args[i])
{
case "-?": ...
case "-help": ...
...
default:
  if (args[i][0] == '-')
    throw new Exception("Unrecognised option: " + args[i]);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读