我在使用正則表達式解析'ipconfig/all'的輸出時遇到了一些麻煩。 目前我正在使用RegexBuddy進行測試,但我想在C#.NET中使用正則表達式。解析Windows'ipconfig/all'輸出
我的輸出是:
Ethernet adapter Yes:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : MAC Bridge Miniport
Physical Address. . . . . . . . . : 02-1F-29-00-85-C9
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::f980:c9c3:a574:37a%24(Preferred)
Link-local IPv6 Address . . . . . : fe80::f980:c9c3:a574:37a7%24(Preferred)
Link-local IPv6 Address . . . . . : fe80::f980:c9c3:a574:37a8%24(Preferred)
IPv4 Address. . . . . . . . . . . : 10.0.0.1(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.0.0
IPv4 Address. . . . . . . . . . . : 172.16.0.1(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 172.16.0.254
DHCPv6 IAID . . . . . . . . . . . : 520228888
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-17-1C-CC-CF-00-1F-29-00-85-C9
DNS Servers . . . . . . . . . . . : 192.162.100.15
192.162.100.16
NetBIOS over Tcpip. . . . . . . . : Enabled
到目前爲止,我已經寫的正則表達式是:
([ -~]+):.+(?:Description\s)(?:\.|\s)+:\s([ -~]+).+(?:Physical Address)(?:\.|\s)+:\s([ -~]+).+(?:DHCP Enabled)(?:\.|\s)+:\s([ -~]+).+(?:(?:Link-local IPv6 Address)(?:\.|\s)+:\s([ -~]+).+Preferred.+)+
的問題是,我想捕獲所有有用的領域羣體,讓他們輕鬆在C#中,出於某種原因 - 當我捕獲多個「本地鏈接本地IPv6」字段時,它停止工作。
我會感謝任何幫助, 謝謝。
編輯: 另一個問題是,我從遠程機器接收ipconfig數據(有一個非託管程序,我沒有控制權) - 因此我不能使用WMI或類似的東西來獲取ipconfig信息以另一種方式。
爲什麼RegEx?數據已經存在於一個關鍵的價值表示法中。 – 2013-03-03 10:02:19