用于删除主机名中的域的正则表达式



我试图只捕获此日期内的主机名,但是我的正则表达式在主机名内时损坏了,.因为我删除了主机名域

正则表达式

^([^;@#.s]+)

数据

srvdata;172.24.154.210
srvnet;10.16.0.1
srvdata2 300
#srvdata3
srvdata3 #srvdata3
srvdata4.domain.com
srvdata.4.domain.com

输出

srvdata
srvnet
srvdata2
srvdata3
srvdata4
srvdata

期望的输出

srvdata
srvnet
srvdata2
srvdata3
srvdata4
srvdata.4

REGEX101

这将根据您提供的数据工作:

^[^#]+?(?:.d+)?(?=[. ;])

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

试试这个:

(.*)(?=.domain.com)

要测试它:链接

我使用前瞻查看在域之前捕获主机名字符串。 显然,如果您有多个域或没有域,则需要更新上面的正则表达式以包含这些选项。