RegEx:匹配两个字符串

时间:2015-06-29 19:51:26

标签: regex expression

我正在尝试创建一个可以解析vpn日志文件的程序,让用户知道他们的VPN配置有什么问题。 VPN生成一个html文件,其中包含许多可用于解决问题的信息。问题是这些信息对普通用户来说太技术化了。我的部分过程是确定用户的IP配置是什么样的。日志是在异地时捕获的,因此无法从各种.net类中收集此信息。我需要解析用户附加的VPN生成的日志来帮助票证。

以下是日志文件的示例。我正在尝试收集无线适配器/以太网适配器,teredo和ip-https adatpers的所有IP信息。我首先尝试使用此正则表达式收集有关以太网适配器的信息,然后我可以使用更多正则表达式进一步过滤这些结果。

(Ethernet adapter Local Area Connection:)(.*)(Auto)

问题是这一直匹配到“隧道适配器”下的自动配置行。如果在以太网适配器本地区域连接下找到,我无法弄清楚如何在第一次自动配置时停止匹配。我有我的 。设置为匹配换行符。

Host Name . . . . . . . . . . . . : M-CNU3489QF5
Primary Dns Suffix  . . . . . . . : some.site.com
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : some.site.com
                                   other.site.com

Wireless LAN adapter Wireless Network Connection 2:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter
Physical Address. . . . . . . . . : C4-D9-87-25-7B-F6
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes

Ethernet adapter Bluetooth Network Connection:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : Bluetooth Device (Personal Area Network)
Physical Address. . . . . . . . . : C4-D9-87-25-7B-F9
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes

Wireless LAN adapter Wireless Network Connection:

Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : Intel(R) Centrino(R) Advanced-N 6235
Physical Address. . . . . . . . . : C4-D9-87-25-7B-F5
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::d4ac:bfab:e226:b235%12(Preferred) 
IPv4 Address. . . . . . . . . . . : 192.168.1.4(Preferred) 
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Sunday, August 17, 2014 5:35:30 PM
Lease Expires . . . . . . . . . . : Monday, August 18, 2014 10:12:24 AM
Default Gateway . . . . . . . . . : 192.168.1.1
DHCP Server . . . . . . . . . . . : 192.168.1.1
DHCPv6 IAID . . . . . . . . . . . : 247781767
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1A-38-F2-60-A0-D3-C1-99-F9-EC
DNS Servers . . . . . . . . . . . : 192.168.1.1
NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Local Area Connection:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : Intel(R) 82579LM Gigabit Network Connection
Physical Address. . . . . . . . . : A0-D3-C1-99-F9-EC
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes

Tunnel adapter Teredo Tunneling Pseudo-Interface:

Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IPv6 Address. . . . . . . . . . . : 2001:0:c00c:509a:28e1:3b50:bbd7:84ae(Preferred) 
Link-local IPv6 Address . . . . . : fe80::28e1:3b50:bbd7:84ae%15(Preferred) 
Default Gateway . . . . . . . . . : 
NetBIOS over Tcpip. . . . . . . . : Disabled

Tunnel adapter 6TO4 Adapter:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : Microsoft 6to4 Adapter
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes

Tunnel adapter iphttpsinterface:

Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : iphttpsinterface
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IPv6 Address. . . . . . . . . . . : 2HIDDNE3(Preferred) 
Temporary IPv6 Address. . . . . . : 2HIDDEN3(Preferred) 
Link-local IPv6 Address . . . . . : fe80::7023:b4d6:8ef7:d253%19(Preferred) 
Default Gateway . . . . . . . . . : 
NetBIOS over Tcpip. . . . . . . . : Disabled

1 个答案:

答案 0 :(得分:0)

我会为此形成一个正则表达式...

/((^[a-zA-Z0-9 -~]+?):\n{2}([a-zA-Z0-9 -~]+?))\n/gm

执行以下操作:

  • 延迟匹配行的开头与字符a-z,A-Z,0-9或和〜之间的任何可打印的unicode字符,后跟冒号

  • 您知道每个块标题后面有2个新行,所以匹配

  • 从az,AZ,0-9,空格或到〜之间的任何可打印的unicode字符延迟匹配以下段落,直到新行,然后块结束。

    < / LI>

可能有许多更复杂的正则表达式技术可以匹配,但你应该从该字符串中获取组,然后能够选择所需的组号。例如:https://regex101.com/r/bI7zW2/1