我正在寻找一个正则表达式,仅从hostname
中提供FQDN
。
E.g。我想要“host
”中的“host.company.com
”。
到目前为止我已经想出了这个:
^(.{4}).*
但是,由于存储在CMDB中的某些设备没有完整的FQDN,因此它也可以捕获没有点的设备。
我现在正在努力的是主机名的长度不同。
答案 0 :(得分:1)
因为我们在第一个时期之前尝试获取所有内容:
^(.*?)\.
问号表示尽可能少地匹配,我们逃避了。让它代表一个实际的点。
与host.company.com匹配时返回“host”。
考虑到可能没有句号的事实,我们使用|
修饰符。
^(.*?)(\.|$)
$将匹配行尾。
但是,如果您不确定是否需要句号,我会说不使用正则表达式,而是在字符串上使用查找函数或算法,这将更加实用和健壮。
答案 1 :(得分:0)
^([^.]+)(\.|$| )
应该捕获它(我正在以这种方式使用它,因为它提供了大多数实现支持的非贪婪的正则表达式。)