我正在使用VB.net和PStools创建一个简单的工作程序,这样我们就可以看到一个人是否登录到多台PC上。
当我运行代码时:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim Proc As New System.Diagnostics.Process
Proc.StartInfo = New ProcessStartInfo("psloggedon")
Proc.StartInfo.RedirectStandardOutput = True
Proc.StartInfo.UseShellExecute = False
Proc.StartInfo.CreateNoWindow = True
Proc.Start()
TextBox2.Text = Proc.StandardOutput.ReadToEnd
Proc.Close()
End Sub我得到的结果是:
"Users logged on locally:
1/1/2014 4:14:43 PM Joseph_Garza\Joseph.Garza
No one is logged on via resource shares."然而,在它说"Joseph_Garza“的地方,它将显示我的公司的名称。
所以..。Company_name\Joseph.Garza
如何使用正则表达式获取:
1.the time and date
2.Joseph.Garza发布于 2014-01-08 13:56:42
我希望这能帮到你。
Regex.Match方法(String):http://msdn.microsoft.com/en-us/library/twcw2f1c(v=vs.110).aspx
发布于 2014-01-08 15:20:04
也许你可以使用正则表达式?
Users logged on locally:\s*((?:(?!\s{2,}).)*)\s*([^\\]*)\\(\S+)regex101 demo
Users logged on locally:按字面意思匹配。
\s*匹配0个或多个空格、制表符和换行符。
((?:(?!\s{2,}).)*)这里最外面的括号用于存储捕获。内部部分是一种模式,用于匹配一行中除两个或更多空格之外的所有字符。(?!\s{2,})是阻止匹配超过2个空格的原因,并利用了负先行(?! ... )。{2,}表示\s至少重复了两次。.是一个通配符,它匹配除换行符以外的所有字符。
([^\\]*)最外层的括号用于存储第二部分。内部部分是一个模式,用于匹配除反斜杠\之外的所有字符。[^ ... ]是一个被否定的类,它将匹配不在其中的所有内容。
\\匹配一个反斜杠和...
(\S+)用于匹配非空格、非换行符、非制表符,并存储匹配项。
并在VB中实现:
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "Users logged on locally:\s*((?:(?!\s{2,}).)*)\s*([^\\]*)\\(\S+)"
Dim input As String = "Users logged on locally:" & vbCrlf & _
" 1/1/2014 4:14:43 PM Joseph_Garza\Joseph.Garza" & vbCrlf & _
"No one is logged on via resource shares."
Dim match As Match = Regex.Match(input, pattern)
If match.Success Then
For ctr As Integer = 1 To match.Groups.Count - 1
Dim captureCtr As Integer = 0
For Each capture As Capture In match.Groups(ctr).Captures
Console.WriteLine("Matches: {1}", _
captureCtr, capture.Value)
captureCtr += 1
Next
Next
End If
End Sub
End Moduleideone demo
注意:我只是添加了公司名称,以防万一,但如果您绝对不需要它,只需使用此regex
Users logged on locally:\s*((?:(?!\s{2,}).)*)\s*[^\\]*\\(\S+)(去掉了[^\\]*周围的括号)
https://stackoverflow.com/questions/20987908
复制相似问题