Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为主机名构建正则表达式?_Java_Regex_Ip - Fatal编程技术网

Java 如何为主机名构建正则表达式?

Java 如何为主机名构建正则表达式?,java,regex,ip,Java,Regex,Ip,需要为以下内容构建正则表达式: x.x.x.x 上面表示一些主机名,其中x可以是一组字符/数字,并且只能有3个点 我尝试了几件事,但在某些情况下失败了。你可以试试这个: String regex = "[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+"; 解释: [a-z0-9]+匹配最小长度为1的组或字符/数字 [\\.]{1}正好匹配一个sympol。{1}表示长度为1,但也可以使用[.]或\\. 上述两条规则重复

需要为以下内容构建正则表达式:

x.x.x.x
上面表示一些主机名,其中x可以是一组字符/数字,并且只能有3个点


我尝试了几件事,但在某些情况下失败了。

你可以试试这个:

String regex = "[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+";
解释:

  • [a-z0-9]+
    匹配最小长度为1的组或字符/数字
  • [\\.]{1}
    正好匹配一个
    sympol。
    {1}
    表示长度为1,但也可以使用
    [.]
    \\.
  • 上述两条规则重复了好几次
正如@Calvin Scherle提到的,您可以将正则表达式缩短为:

String regex = "\\w+\\.\\w+\\.\\w+\\.\\w+";
解释:

  • \w+
    将匹配最小长度为1的每组单词字符(包括字母和数字)
  • \。
    将匹配
    符号
  • 在Java中,
    \
    是一个元字符,必须转义,因此我们将有
    \\w+
    \\.
  • 上述两条规则重复了好几次

您可以试试这一款:

String regex = "[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+";
解释:

  • [a-z0-9]+
    匹配最小长度为1的组或字符/数字
  • [\\.]{1}
    正好匹配一个
    sympol。
    {1}
    表示长度为1,但也可以使用
    [.]
    \\.
  • 上述两条规则重复了好几次
正如@Calvin Scherle提到的,您可以将正则表达式缩短为:

String regex = "\\w+\\.\\w+\\.\\w+\\.\\w+";
解释:

  • \w+
    将匹配最小长度为1的每组单词字符(包括字母和数字)
  • \。
    将匹配
    符号
  • 在Java中,
    \
    是一个元字符,必须转义,因此我们将有
    \\w+
    \\.
  • 上述两条规则重复了好几次

您可以试试这一款:

String regex = "[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+";
解释:

  • [a-z0-9]+
    匹配最小长度为1的组或字符/数字
  • [\\.]{1}
    正好匹配一个
    sympol。
    {1}
    表示长度为1,但也可以使用
    [.]
    \\.
  • 上述两条规则重复了好几次
正如@Calvin Scherle提到的,您可以将正则表达式缩短为:

String regex = "\\w+\\.\\w+\\.\\w+\\.\\w+";
解释:

  • \w+
    将匹配最小长度为1的每组单词字符(包括字母和数字)
  • \。
    将匹配
    符号
  • 在Java中,
    \
    是一个元字符,必须转义,因此我们将有
    \\w+
    \\.
  • 上述两条规则重复了好几次

您可以试试这一款:

String regex = "[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+[\\.]{1}[a-z0-9]+";
解释:

  • [a-z0-9]+
    匹配最小长度为1的组或字符/数字
  • [\\.]{1}
    正好匹配一个
    sympol。
    {1}
    表示长度为1,但也可以使用
    [.]
    \\.
  • 上述两条规则重复了好几次
正如@Calvin Scherle提到的,您可以将正则表达式缩短为:

String regex = "\\w+\\.\\w+\\.\\w+\\.\\w+";
解释:

  • \w+
    将匹配最小长度为1的每组单词字符(包括字母和数字)
  • \。
    将匹配
    符号
  • 在Java中,
    \
    是一个元字符,必须转义,因此我们将有
    \\w+
    \\.
  • 上述两条规则重复了好几次

您可以使用
字符串.matches(“[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\”)进行测试

它将匹配任何由3个点分隔的字母数字字符

  • [a-zA-Z0-9]
    是与任何字母数字字符匹配的组
  • +
    表示“查找一个或多个事件”
  • \\.
    表示文字
    字符

您可以使用
字符串.matches(“[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\”)进行测试

它将匹配任何由3个点分隔的字母数字字符

  • [a-zA-Z0-9]
    是与任何字母数字字符匹配的组
  • +
    表示“查找一个或多个事件”
  • \\.
    表示文字
    字符

您可以使用
字符串.matches(“[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\”)进行测试

它将匹配任何由3个点分隔的字母数字字符

  • [a-zA-Z0-9]
    是与任何字母数字字符匹配的组
  • +
    表示“查找一个或多个事件”
  • \\.
    表示文字
    字符

您可以使用
字符串.matches(“[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+\”)进行测试

它将匹配任何由3个点分隔的字母数字字符

  • [a-zA-Z0-9]
    是与任何字母数字字符匹配的组
  • +
    表示“查找一个或多个事件”
  • \\.
    表示文字
    字符
试试这个:

String regex = "[a-zA-Z0-9]+\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]"
试试这个:

String regex = "[a-zA-Z0-9]+\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]"
试试这个:

String regex = "[a-zA-Z0-9]+\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]"
试试这个:

String regex = "[a-zA-Z0-9]+\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]"

您可以发布您尝试的内容。为什么要将主机名上的点数限制为三个?这仅适用于IP地址,例如,主机名可以是i.dont.like.google.so.i.will.search.using.bing.com的形式。。。考虑检查三个点数字的字符串,或者任何数量的点主机名字符串。将来主机名称中会有Unicode字符,主机名不限于4个部分。URL的主机部分可以包含IP(v4和v6)或domai