如何仅替换文件中url字符串中的IP

时间:2013-12-20 09:57:53

标签: java r.java-file

如何使用java文件操作仅替换文件中以下字符串中的Ip var BOSH_URL = "http://192.168.50.107:7070/http-bind/";

4 个答案:

答案 0 :(得分:1)

首先需要阅读文件内容。然后你可以使用与ip地址匹配的正则表达式(例如\d+\.\d+\.\d+\.\d+)并将其替换为新的。当你完成后再将它写回文件。

这是一个正则表达式测试器:http://www.regexplanet.com/advanced/java/index.html

这是一个如何读写文件的教程:http://www.java-samples.com/showtutorial.php?tutorialid=392

答案 1 :(得分:1)

只需使用replaceAll

即可
BOSH_URL = BOSH_URL.replaceAll("(\\d+.){3}\\d+", "127.0.0.1");

答案 2 :(得分:1)

正如Shoaib Chikate所说,你可以使用字符串连接,我建议你像var BOSH_URL = new StringBuilder("http://").append(ipAddress).append(port).append("/http-bind")中那样使用StringBuilder

如果您选择使用java正则表达式替换IP,那么您必须非常谨慎地使用它;发布的一些例子有瑕疵。例如:"(\\d+.){3}\\d+"也可以匹配'999.999.999.99999999',它不是有效的IP。因此,需要额外的逻辑来检查有效性(如果您的情况需要)。

OR

将BOSH_URL更改为var BOSH_URL = "http://@ipAddress:@port/http-bind/",在获得真实IP和端口后,您可以BOSH_URL.replace("@ipAddress", realIPAddress).replace("@port", realPort);

答案 3 :(得分:0)

要只更换一个ip,不要写包含replaceFirst的大逻辑替换等等等等 而是为此声明变量并更改该变量。

var ipAddress=null
var BOSH_URL="http://"+ipAddress+":7070/anyAdress"