请问这段代码运行到正则表达式那段时出错的问题
当运行到
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]+)
如果不是你要的结果,那说一下你的正则要匹配什么样的字符串,说下规律