正则表达式从完全限定的域名中提取主机名

时间:2012-07-10 14:24:44

标签: regex

我对正则表达式非常生疏,需要一个从完全限定的域名(FQDN)中提取主机名,这是我所拥有的一个例子:

myhostname.somewhere.env.com
myotherhostname.somewhereelse.insomeotherplace.byh.info

我要返回

myhostname
myotherhostname

非常感谢一些帮助

我尝试"(.+)\.",但它与右边的字符串匹配并生成:

myhostname.somewhere.env.
myotherhostname.somewhereelse.insomeotherplace.byh.

6 个答案:

答案 0 :(得分:3)

使用此regexepression (.+?)(?=\.)

答案 1 :(得分:1)

你想要第一组:

([^.]*).*

或者,第一场比赛来自:

[^.]*

或者,唯一匹配来自:

^[^.]*

答案 2 :(得分:0)

你很接近,你只需要添加一个?就可以让它变得贪婪。只需选择比赛中的第一组

即可
(.+?)\.

但是,正如一些人已经建议的那样,你可能只需要在.上拆分并从分割数组中获取第一项。正则表达式可能很昂贵

答案 3 :(得分:0)

这个怎么样?

^(\w+)(\.\w+)*$

您可以在regexplanet

进行测试

答案 4 :(得分:0)

host.split('.').last(2).join('.')

答案 5 :(得分:0)

/^[^.]+/gm

https://regex101.com/r/jW3lC5/1

读取:行首,后跟一个或多个非句点字符。 'g'表示全局(多个匹配),'m'表示'多行模式',它将在每行的开头进行第一次^匹配。