我需要匹配主机名 - 但不需要 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/