【问题标题】:Regex in java which will accept following patternjava中的正则表达式将接受以下模式
【发布时间】:2014-09-16 10:55:34
【问题描述】:

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

rahul.myServer2.ip=192.168.0.4

我使用以下正则表达式来获取 ip 拉胡尔\.(\w+)\.ip

但是当我得到时我的正则表达式失败了

rahul.myServer-1.ip=192.168.0.3

现在我需要编写可以接受一些特殊字符的正则表达式。 它将返回 ipmyServername 的值 我们将提供什么

【问题讨论】:

  • rahul\.([\w-_!@#]+)\.ip你可以给一个括号范围。

标签: java regex


【解决方案1】:

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

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

DEMO

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

【讨论】:

    【解决方案2】:

    您可以使用这个基于否定的正则表达式:

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

    这里[^.]+ 会再匹配 1 个字符,直到得到一个点。

    在 Java 中你可以这样写:

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

    【讨论】:

      【解决方案3】:

      一个很好的综合方法是([^.]*)\\.[^.=]*=([\\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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-29
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-14
        • 2022-01-17
        相关资源
        最近更新 更多