我有下一个给定的输出:
1: IP4 1.1.1.1 255.0.0.0 1.255.255.255
127: IP6 fd55:faaf:e1ab:215d:0:0:0:103/64
fe80::7699:75ff:fec8:427e
128: IP4 10.241.6.103 255.255.255.128 10.241.6.127
我想要一个匹配第1,2和3行且与第三行不匹配的正则表达式。
正则表达式听起来应该是这样的:
行必须以0到999之间的数字开头,然后是:
,然后是一些空格,后跟IP4
或IP6
字,其余部分直到{{1}无所谓。
答案 0 :(得分:0)
使用以下正则表达式:
\d{1,3}:\s+IP[46].*[0-9]
简单解释:
\d{1,3}
匹配1,2或3位数(0-999):
字面上匹配:
\s+
匹配leas one whitespace IP[46]
匹配IP4
或IP6
。 [46]
匹配组中的一个字符。.*[0-9]
匹配以数字结尾的所有其他内容。请访问此网站以获取详细说明:Regex101。不要忘记在Java中使用双重转义\\
,这是一个常见的错误。
\\d{1,3}:\\s+IP[46].*[0-9]