0

我正在寻找一个正则表达式来给出hostnamefrom a FQDN

例如,我只想要host来自“”的“ host.company.com”。

到目前为止,我已经想出了这个:

^(.{4}).* 

但是,由于存储在 CMDB 中的某些设备没有完整的 FQDN,因此它也可以捕获没有点的设备。

我现在正在努力解决的问题是主机名的长度不同。

4

2 回答 2

1

因此,由于我们试图在第一阶段之前获得所有内容:

^(.*?)\.

问号表示尽可能少地匹配,我们将 . 让它代表一个实际的点。

与 host.company.com 匹配时返回“主机”。

为了说明可能没有句点,我们使用|修饰符。

^(.*?)(\.|$)

其中 $ 将匹配行尾。

但是,如果您不确定是否需要句点,我会说不要使用正则表达式,而是在字符串上使用查找函数或算法,这将更加实用和健壮。

于 2012-10-02T11:23:19.770 回答
0
^([^.]+)(\.|$| )

应该捕获它(我正在以这种方式使用它,因为它提供了大多数实现支持的非贪婪正则表达式)。

于 2012-10-02T11:24:27.947 回答