【发布时间】:2014-08-27 02:21:34
【问题描述】:
我想编写java程序来屏蔽输入字符串中存在的IP地址
例如输入字符串是“AAA192.168.110.*BBBB10.*”
条件:将ip地址替换为'X'字符
我想输出为 AAAXXXXXXXXXXXXXXXBBBXXXX
我尝试解析字符串以替换 IP 地址,但我无法将“*”映射为正则表达式。
有人可以帮我编写正则表达式来替换字符串中的 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.*";
字符串 m = input.replaceAll("[192.168.10.*]", "X").replace("[10.*]", "Y");
System.out.println(m);
//输出为 AAAAXXXXXXXXXXXXXXXCCCCCDDDXXXX 不正确。它取代了 99 也是不正确的。而且它应该用没有发生的'YYYY'替换10.*
【问题讨论】:
标签: java regex ip-address mask