读书人

请教这段代码运行到正则表达式那段时出

发布时间: 2011-12-10 22:22:01 作者: rapoo

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

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]+)


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

读书人网 >VB Dotnet

热点推荐