我正在尝试匹配来自字符串的ipv6正则表达式:
3111105 fe88 :: 777:2333:e89:12f3,ff42 :: 9,tcp / 0/0
我要提取两个IPv6地址。
我有正则表达式如下:
(([A-f0-9] {0,4}:)+ [A-f0-9] {1,4}),(([A-f0-9] {0,4} :) + [A-f0-9] {1,4}),([A-ZA-Z0-9] +)(。*)
但是我得到了组(1)中第一个ip的一部分和第4组中第二个ip的一部分。
这就是我得到的:
组(0) - (fe88 :: 777:2333:e89:12f3)
组(1) - (e89:)
组(2) - (ff42 :: 9)
组(3) - (:)
组(4) - (tcp)
组(5) - (/ 0/0)
但预期是:
组(0) - (fe88 :: 777:2333:e89:12f3)
组(1) - (ff42 :: 9)
组(2) - (tcp)
组(3) - (/ 0/0)
有什么建议吗?
答案 0 :(得分:0)
可选字符上缺少正则表达式,第一部分是“:”。
因此,跟随正则表达式会正确捕获组:
((?:[0-9A-F] {0,4}:)+ [0-9A-F] {0,4})+,((?:[0-9A-F] {0 ,4}:)+ [0-9A-F] {0,4})+,([A-ZA-Z0-9] +)(*)