我对正则表达式非常生疏,需要一个从完全限定的域名(FQDN)中提取主机名,这是我所拥有的一个例子:
myhostname.somewhere.env.com
myotherhostname.somewhereelse.insomeotherplace.byh.info
我要返回
myhostname
myotherhostname
非常感谢一些帮助
我尝试"(.+)\."
,但它与右边的字符串匹配并生成:
myhostname.somewhere.env.
myotherhostname.somewhereelse.insomeotherplace.byh.
答案 0 :(得分:3)
使用此regexepression (.+?)(?=\.)
答案 1 :(得分:1)
你想要第一组:
([^.]*).*
或者,第一场比赛来自:
[^.]*
或者,唯一匹配来自:
^[^.]*
答案 2 :(得分:0)
你很接近,你只需要添加一个?
就可以让它变得贪婪。只需选择比赛中的第一组
(.+?)\.
但是,正如一些人已经建议的那样,你可能只需要在.
上拆分并从分割数组中获取第一项。正则表达式可能很昂贵
答案 3 :(得分:0)
答案 4 :(得分:0)
host.split('.').last(2).join('.')
答案 5 :(得分:0)
/^[^.]+/gm
https://regex101.com/r/jW3lC5/1
读取:行首,后跟一个或多个非句点字符。 'g'表示全局(多个匹配),'m'表示'多行模式',它将在每行的开头进行第一次^
匹配。