首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

请教这段代码运行到正则表达式那段时出错的有关问题

2011-12-10 
请问这段代码运行到正则表达式那段时出错的问题当运行到DimregAsRegexNewRegex( mailexchanger(?[^\\\s

请问这段代码运行到正则表达式那段时出错的问题
当运行到

Dim   reg   As   Regex   =   New   Regex( "mail   exchanger   =   (?[^\\\s]+) ")

时提示错误:

正在分析“mail   exchanger   =   (?[^\\\s]+)”-   无法识别的分组构造。


  Private   Function   GetMailServer(ByVal   sDomain   As   String)   As   String
  Dim   info   As   New   ProcessStartInfo()
  Dim   ns   As   Process
   '调用Windows的nslookup命令,查找邮件服务器
  info.UseShellExecute   =   False
  info.RedirectStandardInput   =   True
  info.RedirectStandardOutput   =   True
  info.FileName   =   "nslookup "
  info.CreateNoWindow   =   True
   '查找类型为MX。关于nslookup的详细说明,请参见
   'Windows帮助
  info.Arguments   =   "-type=MX   "   +   sDomain.ToUpper.Trim
   '启动一个进行执行Windows的nslookup命令()
  ns   =   Process.Start(info)
  Dim   sout   As   StreamReader
  sout   =   ns.StandardOutput
   '   利用正则表达式找出nslookup命令输出结果中的邮件服务器信息
  Dim   reg   As   Regex   =   New   Regex( "mail   exchanger   =   (?[^\\\s]+) ")
  Dim   mailserver   As   String
  Dim   response   As   String   =   " "
  Do   While   (sout.Peek()   >   -1)
  response   =   sout.ReadLine()
  Dim   amatch   As   Match   =   reg.Match(response)
  If   (amatch.Success)   Then
  mailserver   =   amatch.Groups( "server ").Value
  Exit   Do
  End   If
  Loop
  Return   mailserver
  End   Function

[解决办法]
mail exchanger = (?[^\\\s]+)
------>
mail exchanger = (? <server> [^\\\s]+)


如果不是你要的结果,那说一下你的正则要匹配什么样的字符串,说下规律

热点排行