这是我的模式:
\s+\d+:\s+(?<local>\d+)[-][>]\s+?(?<remote>\d+)\s+(?<wwn>..:..:..:..:..:..:..:..)\s+\d+\s+(?<name>\w+)\s+[s][p]:\s+\w+.\w+\s+\w+[:]\s+\d.\w+\s+(?<trunk>TRUNK)?
这是输入。 '*'不是输入的一部分,它只是指定匹配的内容。我正在RegExStorm.net上测试这个。我不认为每一行都是重要的,不同的输入并不跟随每一行的匹配。我看不出有什么不同,如果匹配线和不匹配线之间有什么不同,除了说QOS的线但是比赛应该仍然在那里成功,它就会扔掉它。
* 1: 0-> 11 10:00:00:05:1e:89:ed:8c 14 SAN009B sp: 8.000G bw: 8.000G
2: 23-> 2 50:00:51:e8:b9:1b:ae:01 3 fcr_fd_3 sp: 8.000G bw: 8.000G
* 3: 24-> 22 10:00:00:05:1e:36:5b:ea 1 SAN001B sp: 4.000G bw: 4.000G TRUNK
4: 38-> 38 10:00:00:05:1e:e2:45:00 9 SAN004B sp: 8.000G bw: 24.000G TRUNK QOS
*5: 48-> 15 10:00:00:05:1e:89:ed:8c 14 SAN009B sp: 8.000G bw: 8.000G
6: 49-> 10 10:00:00:05:1e:87:5a:e4 13 SAN013B sp: 8.000G bw: 8.000G
*7: 56-> 3 10:00:00:05:1e:84:15:dc 11 SAN011B sp: 8.000G bw: 8.000G
8: 64-> 16 10:00:00:05:1e:89:ed:8c 14 SAN009B sp: 8.000G bw: 8.000G
* 9: 65-> 18 10:00:00:05:1e:87:5a:e4 13 SAN013B sp: 8.000G bw: 8.000G
10: 72-> 63 10:00:00:05:1e:84:15:dc 11 SAN011B sp: 8.000G bw: 8.000G
*11: 87-> 27 50:00:51:e8:b9:1b:ae:01 3 fcr_fd_3 sp: 8.000G bw: 8.000G
答案 0 :(得分:0)
因为这部分原因:\d.\w+
另一个号码的相应部分是\w+.\w+
24
(来自24.000G
子字符串)不适合\d
,因此您应该使用\d+
或\w+
。
另一个注意事项,在此摘录中,您希望按原样使用点文字,您需要将其转义为\.
,否则它将与any character
匹配。
我是如何找到你的问题的:我在https://regex101.com/上打开它并从正则表达式中删除了部分,直到它匹配为止,然后立即显而易见。