用于 IP 捕获或主机名的正则表达式



我正在尝试为捕获或hostname创建一个正则表达式IP,并在#之后忽略任何内容

数据

192.168.0.41 #obs
SRVNET #obs
192.168.0.4 #obs

正则表达式

^(([1]?[0-9]{1,2}|2([0-4][0-9]|5[0-5])).){3}([1]?[0-9]{1,2}|2([0-4][0-9]|5[0-5]|[a-z]))$

在注释模式的第一部分中,您正在匹配[^#]+这是一个否定的字符类,也将匹配一个空格。

由于您不想匹配空格,因此可以向其添加s以不匹配空格字符。

整场比赛被包装在第 1 组中,但由于这是唯一的比赛,您可能会使其无法捕获(?:

请注意,您必须转义点才能从字面上匹配它,并且[1]与 1 相同。

^(?:[^#s]+)|^((1?[0-9]{1,2}|2([0-4][0-9]|5[0-5])).){3}(1?[0-9]{1,2}|2([0-4][0-9]|5[0-5]))$
^^       ^^                                ^^  

正则表达式演示