java中的Regex将接受以下模式

java中的Regex将接受以下模式,java,regex,Java,Regex,我的代码正在从属性文件读取数据。 其中可能有以下条目 rahul.myServer2.ip=192.168.0.4 我使用下面的正则表达式获取ip rahul\.\w+\.ip 但是我的正则表达式失败了,当我 rahul.myServer-1.ip=192.168.0.3 现在我需要编写正则表达式,它也将接受一些特殊字符。 它将返回ip和myServername的值 无论我们提供什么,您都可以使用这个基于否定的正则表达式: rahul\.([^.]+)\.ip 此处[^.]+将再匹配1个字符,

我的代码正在从属性文件读取数据。 其中可能有以下条目

rahul.myServer2.ip=192.168.0.4

我使用下面的正则表达式获取ip rahul\.\w+\.ip

但是我的正则表达式失败了,当我

rahul.myServer-1.ip=192.168.0.3

现在我需要编写正则表达式,它也将接受一些特殊字符。 它将返回ip和myServername的值
无论我们提供什么,您都可以使用这个基于否定的正则表达式:

rahul\.([^.]+)\.ip
此处[^.]+将再匹配1个字符,直到得到一个点

在Java中,您可以这样编写:

rahul\\.([^.]+)\\.ip

你也可以用这个正则表达式

rahul\\.([\\w\\W]+?)\\.ip=([\\d.]+)

组1将包含服务器名称,组2将包含相应的ip地址

一个好的综合方法是[^.]*\.[^.=]*=[\\d.]+,其中第1组将获得名称,第2组将获得ip

它接受以下条目:

myServer4.ip=192.168.0.5
rahul.middlename.myServer3.ip=192.168.0.4
rahul.myServer2.ip=192.168.0.3
rahul\.[\w-\!@]+\.ip您可以给出括号范围。