正则表达式匹配主机名——不包括 TLD

标签 regex hostname

我需要匹配主机名 - 但不需要 tld:

example.com =~/regex/=> 示例

sub.example.com =~/regex/=> sub.example

sub.sub.example.com =~/regex/=> sub.sub.example

有关正则表达式的任何帮助吗?谢谢。

最佳答案

假设您的字符串格式正确并且不包含诸如协议(protocol)之类的内容[即http://] ,您需要直到但不包括最终 .tld 的所有字符。

所以这是最简单的方法。正则表达式的技巧是不要让事情变得过于复杂:

.*(?=\.\w+)

这基本上是说,给我后面跟着[例如].xxx的集合中的所有字符,这基本上只会返回最后一个句点之前的所有内容.

如果您没有前瞻功能,它可能是最容易使用的:

(\w+\.)+

这将为您提供所有内容,包括最后的“.”。然后只需修剪“.”即可。

关于正则表达式匹配主机名——不包括 TLD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/836536/

相关文章:

Java replaceAll() 正则表达式不起作用

javascript - 正则表达式检查 & ( ) 和重复字母

c# - 如何在 C# 中获取本地计算机名称?

regex - mod_rewrite 不匹配上次匹配

Python REGEX 从字符串中获取权重值

python - 尝试使用只有两个或更多元音出现的单词打印到文本文件

sockets - Socket UDP 1个socket,不同端口

perl - IO::Socket 与 Socket 我都是 "use"吗?

asp.net - 不使用HttpRequest获取主机名

c - Apache 过滤器请求主机名比较不起作用