正则表达式从包含多个单词的字符串中的 FQDN 中提取主机名

问题描述 投票:0回答:1

我有很多看起来像这样的字符串

apl22002.prod.f02.dc2.example.com - DC2H2
N2 - apl220010.prod.f02.dc2.example.com 

我想要一个正则表达式来仅匹配主机名,例如第一行是 apl22002,第二行是 apl220010。

我尝试了

^([^.]+)
,它适用于第一行,但我不确定如何让它与第二行一起工作。 我尝试了
([\w_-]+(?:(?:\.[\w_-]+)+))
,它很好地匹配 FQDN,但与主机名不完全匹配。

有人可以指出我正确的方向吗?

谢谢!

regex hostname
1个回答
0
投票

此正则表达式将匹配中间至少有 1 个点字符的任何字符串,例如“outlook.com”。它只会捕获第一部分(主机名)。您几乎可以使用第二个正则表达式来完成它,但将整个字符串分组。我注意到您包含下划线字符“_”,如果有必要,请将其添加到下面的正则表达式中。

([\w-]+)(?:\.[\w-]+)+

© www.soinside.com 2019 - 2024. All rights reserved.