java正则表达式掩盖IP地址

时间:2014-07-06 13:37:01

标签: java regex ip-address mask

我想编写java程序来屏蔽输入字符串中的ip地址

例如输入字符串是" AAA192.168.110。* BBBB10。*"

条件:将IP地址替换为' X'字符

我想输出为 AAAXXXXXXXXXXXXXBBBXXXX

我试图解析字符串以替换IP地址,但我无法映射' *'作为正则表达式。

有人可以帮我编写reg-ex来替换字符串中的ip地址吗? 注意:要替换的字符数(' X')等于ip地址中的字符数

例如10. *由XXXX替换

可能还有其他数字和IP地址:

例如" AAAA1710.20 *" 。这里掩码的IP地址是" 10.20。*"。所以输出应该是 " AAAA17XXXXXXX"

所以它应该只对需要屏蔽的ip进行屏蔽。所以对于" AAA1710.20。*" ,它应该只删除" 10.20。*"

需要屏蔽的IP地址将作为输入与要解析的输入字符串一起提供。

对于上面的示例,要解析的IP地址为" 10.20。*"

以下代码并未提供所需的输出:

字符串输入=" AAAA99192.168.10。* CCCCCDDD10。*&#34 ;;

String m = input.replaceAll(" [192.168.10。*]"," X")。replace(" [10。*]&#34 ;,                 " Y&#34);

的System.out.println(米);

//输出为AAAAXXXXXXXXXXXXXXCCCCCDDDXXXX,不正确。它也取代了99也是不正确的。而且它应该取代10. *与'YYYY'这没有发生

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码屏蔽数字和点,

String s = "AAA2110.20.*BB192.128.*";
String m = s.replaceAll("10\\.20\\.\\*", "XXXXXXX").replaceAll("192\\.128\\.\\*", "YYYYYYYYY");
System.out.println(m);

输出:

AAA21XXXXXXXBBYYYYYYYYY

IDEONE

答案 1 :(得分:0)

您可以使用此正则表达式:

"([0-9]{1,3}\\.){3}[0-9]{1,3}"

找到IP地址。