CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

c#关于正则、网络连接测试的两个问题

楼主maconelxp(皮皮)2005-06-17 10:10:19 在 .NET技术 / C# 提问

1.为什么正则"\s"这么写就有错,而"\n"却没有错?详细解释一下原因  
  2.c#中怎么判断网络是否出于连接状态? 问题点数:50、回复次数:10Top

1 楼fancyf(凡瑞)回复于 2005-06-17 10:16:07 得分 50

1、最好把整个表达式的要求说一下,不然没法判断  
  2、  
  public   string   NetStatus()  
                                  {  
                                                  ManagementObjectCollection   objects;  
                                                  string   status   =   "";  
                                                  ManagementObjectSearcher   searcher   =   new   ManagementObjectSearcher();  
                                                  searcher.Query.QueryString   =   "Select   *   From   Win32_NetworkAdapter   ";  
                                                  objects   =   searcher.Get();  
                                                  foreach(ManagementObject   obj   in   objects)  
                                                  {  
                                                                  foreach(PropertyData   p   in   obj.Properties)  
                                                                  {  
                                                                                  if(p.Name.Equals("NetConnectionStatus"))  
                                                                                  {  
                                                                                                  if(p.Value!=null)  
                                                                                                  {  
                                                                                                                  status   =   p.Value.ToString();  
                                                                                                  }  
                                                                                  }  
                                                                  }  
                                                  }  
                                                  switch(status)  
                                                  {  
                                                                  case   "0":  
                                                                                  return   "Disconnected";  
                                                                  case   "1":  
                                                                                  return   "Connecting   ...";  
                                                                  case   "2":  
                                                                                  return   "Connected";  
                                                                  case   "3":  
                                                                                  return   "Disconnecting   ...";  
                                                                  case   "4":  
                                                                                  return   "Hardware   not   present";  
                                                                  case   "5":  
                                                                                  return   "Hardware   disabled";  
                                                                  case   "6":  
                                                                                  return   "Hardware   malfunction";  
                                                                  case   "7":  
                                                                                  return   "Media   disconnected";  
                                                                  case   "8":  
                                                                                  return   "Authenticating";  
                                                                  case   "9":  
                                                                                  return   "Authentication   succeeded";  
                                                                  case   "10":  
                                                                                  return   "Authentication   failed";  
                                                                  default:  
                                                                                  return   "";  
                                                  }  
                                  }Top

2 楼maconelxp(皮皮)回复于 2005-06-17 10:19:28 得分 0

第一个问题是:  
  string   pattern   =   "\s";这样c#涉及器直接提示我这就是一个错误的转义序列  
  而我用  
  string   pattern   =   "\n";却不会出现这样的提示,为什么?Top

3 楼fancyf(凡瑞)回复于 2005-06-17 10:25:09 得分 0

\是C#中的转移字符,他后面的那个字符会被认为有特殊用途  
  \s在C#中没有意义,因此会被报错,而\n是C#中的换行符,虽然不抱错,但是在正则表达式中写\n也起不到应有的效果,要写在正则表达式中,\要用\\来代替,也就是说,应该写成  
  "\\s"  
  和  
  "\\n"  
  分别对应正则表达式中的\s和\n两个符号Top

4 楼maconelxp(皮皮)回复于 2005-06-17 10:32:59 得分 0

你的意思是说:\s在正则表达式中是表示:匹配空白字符,但是在c#语法中却没有实际意义,所以才导致的错误吗?  
  如果我现在要检查用户输入的正则是否合法(能匹配我的需求)  
  比如我要求用户输入的正则类似  
  string   pattern   =   @"[\s\S]*?(?<content>...)[\s\S]*";     //...表示任意字符  
  我该怎么写我的正则去检查用户输入的正则是否合法?Top

5 楼fancyf(凡瑞)回复于 2005-06-17 10:37:26 得分 0

你这样写  
  string   pattern   =   @"[\s\S]*?(?<content>...)[\s\S]*";  
  没有问题,前面加上@了,就不会被转义了  
  但是去掉@的话就会报“这就是一个错误的转义序列”的错误Top

6 楼maconelxp(皮皮)回复于 2005-06-17 10:49:01 得分 0

这个我知道,可是如果我写一个正则,用来检查用户输入的正则是否符合我的要求,这个正则我该怎么写?如果不加@,把\s当成非转义字符Top

7 楼fancyf(凡瑞)回复于 2005-06-17 10:58:53 得分 0

你的要求是什么?  
  要检查用户输入了一个\s,那在C#中得写pattern   =   @"\\s"Top

8 楼maconelxp(皮皮)回复于 2005-06-17 11:26:03 得分 0

谢谢你,另外你上边那个ManagementObjectSearcher   使用的查询语句从哪里来的?  
  都能对什么查询,我查msdn也没有找到查询这方面的Top

9 楼fancyf(凡瑞)回复于 2005-06-17 11:31:22 得分 0

WMI我也不熟悉,MSDN中有完整的WMI参考,可以去找一下有关WMI的资料看一下Top

10 楼maconelxp(皮皮)回复于 2005-06-17 11:50:01 得分 0

太谢谢你了Top

相关问题

  • C#测试类
  • 如何在不连接网络的情况下测试程序?
  • 在pb程序当中如何测试网络连接?
  • 小测试 小测试(转自c/c++)
  • C#里如何维持大量的网络连接?
  • 请教关于用C++连接网络数据库问题
  • 请教C++连接网络数据库问题
  • 请问如何使用c#控制网络连接的关闭?
  • 使用socket通信,怎样测试网络连接是否正常?
  • VB编码:如何实现c/s模式下的网络流量测试

关键词

  • c#
  • 字符
  • 正则表达式
  • 检查
  • 查询
  • 用户
  • hardware
  • 转义
  • managementobjectsearcher
  • searcher

得分解答快速导航

  • 帖主:maconelxp
  • fancyf

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo