如何使用正则表达式分号后在systeminfo中提取信息?

时间:2015-12-07 14:23:40

标签: regex

我在命令行中运行 systeminfo 命令来获取系统信息。 我只需要其中一些,而不是每件事。如何使用正则表达式来提取信息?

编辑:我正在使用LabView,它使用Perl兼容的正则表达式(http://www.pcre.org/)。

我只需要提供以下信息 NameOfTheHost (Hostname:)
Microsoft Windows 8.1 Pro (Betriebssystemname:)
07.12.2015, 07:54:09 (Systemstartzeit:)
1 and [01]: Intel64 Family 6 Model 60 Stepping 3 GenuineIntel ~2501 MHz (Prozessor(en):)
username (Registrierter Benutzer:)
8.105 MB (Gesamter physischer Speicher:)
3.315 MB (Verfügbarer physischer Speicher:)
8.105 MB (Virtueller Arbeitsspeicher: Maximale Größe:)
2.485 MB (Virtueller Arbeitsspeicher: Verfügbar:)
5.620 MB (Virtueller Arbeitsspeicher: Zurzeit verwendet:)

我的命令 systeminfo 提供以下文字:

Hostname:                                      NameOfTheHost
Betriebssystemname:                            Microsoft Windows 8.1 Pro
Betriebssystemversion:                         6.3.9600 Nicht zutreffend Build 9600
Betriebssystemhersteller:                      Microsoft Corporation
Betriebssystemkonfiguration:                   Mitglied der Domäne/Arbeitsgruppe
Betriebssystem-Buildtyp:                       Multiprocessor Free
Registrierter Benutzer:                        username
Registrierte Organisation:
Produkt-ID:                                    0000-0000-0000
Ursprüngliches Installationsdatum:             01.01.2010, 13:41:25
Systemstartzeit:                               07.12.2015, 07:54:09
Systemhersteller:                              Hewlett-Packard
Systemmodell:                                  HP ProBook 650 G1
Systemtyp:                                     x64-based PC
Prozessor(en):                                 1 Prozessor(en) installiert.
                                               [01]: Intel64 Family 6 Model 60 Stepping 3 GenuineIntel ~2501 MHz
BIOS-Version:                                  Hewlett-Packard L77 Ver. 01.05, 29.04.2014
Windows-Verzeichnis:                           C:\Windows
System-Verzeichnis:                            C:\Windows\system32
Startgerät:                                    \Device\HarddiskVolume1
Systemgebietsschema:                           de-at;Deutsch (Österreich)
Eingabegebietsschema:                          de;Deutsch (Deutschland)
Zeitzone:                                      (UTC+01:00) Amsterdam, Berlin, Bern, Rom, Stockholm, Wien
Gesamter physischer Speicher:                  8.105 MB
Verfügbarer physischer Speicher:               3.315 MB
Virtueller Arbeitsspeicher: Maximale Größe:    8.105 MB
Virtueller Arbeitsspeicher: Verfügbar:         2.485 MB
Virtueller Arbeitsspeicher: Zurzeit verwendet: 5.620 MB
Auslagerungsdateipfad(e):                      Nicht zutreffend
Domäne:                                        domainname.local
Anmeldeserver:                                 \\loginserver
Hotfix(es):                                    148 Hotfix(e) installiert.
                                               [01]: KB2899189_Microsoft-Windows-CameraCodec-Package
                                               [02]: KB000000
                                               [03]: KB000000
                                               ..... /* shortened */
                                               [148]: KB000000
Netzwerkkarte(n):                              3 Netzwerkadapter installiert.
                                               [01]: Bluetooth-Gerät (PAN)
                                                     Verbindungsname: Bluetooth-Netzwerkverbindung 3
                                                     Status:          Medien getrennt
                                               [02]: Intel(R) Ethernet-Verbindung I217-V
                                                     Verbindungsname: Ethernet 2
                                                     DHCP aktiviert:  Ja
                                                     DHCP-Server:     10.0.0.1
                                                     IP-Adresse(n)
                                                     [01]: 10.0.0.10
                                                     [02]: 0000::0000:0000:0000:0000
                                               [03]: Broadcom BCM943228HMB 802.11abgn 2x2 Wi-Fi Adapter
                                                     Verbindungsname: WiFi 2
                                                     DHCP aktiviert:  Ja
                                                     DHCP-Server:     10.0.0.10
                                                     IP-Adresse(n)
                                                     [01]: 10.0.0.11
                                                     [02]: 0000::0000:0000:0000:0000
Anforderungen für Hyper-V:                     Erweiterungen für den VM-Überwachungsmodus: Ja
                                               Virtualisierung in Firmware aktiviert: Nein
                                               Adressübersetzung der zweiten Ebene: Ja
                                               Datenausführungsverhinderung verfügbar: Ja

1 个答案:

答案 0 :(得分:1)

您真的需要向我们提供有关您要使用的正则表达式或使用何种语言的更多详细信息。假设您想在c#中使用它,那么您将如何遍历所有匹配项:

try {
    Regex regexObj = new Regex(@"([^:]*):\s*(.*)");
    Match matchResults = regexObj.Match(subjectString);
    while (matchResults.Success) {
        // matched text: matchResults.Value
        // match start: matchResults.Index
        // match length: matchResults.Length
        matchResults = matchResults.NextMatch();
    } 
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}

然后你可以检查你想要哪些。但说实话,我不会使用正则表达式来完成这项任务。由于您只需要列表中的一些已知条目,因此循环执行这些行并检查行是否以例如。 “主机名:”如果有,请接受其余的字符串。

如果没有进一步的细节,我们将无法给您更准确的答案。