给定输出的Java正则表达式

时间:2016-09-16 12:45:14

标签: java regex

我有下一个给定的输出:

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之间的数字开头,然后是:,然后是一些空格,后跟IP4IP6字,其余部分直到{{1}无所谓。

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]匹配IP4IP6[46]匹配组中的一个字符。
  • .*[0-9]匹配以数字结尾的所有其他内容。

请访问此网站以获取详细说明:Regex101。不要忘记在Java中使用双重转义\\,这是一个常见的错误。

\\d{1,3}:\\s+IP[46].*[0-9]