首页 > 解决方案 > IP 捕获或主机名的正则表达式

问题描述

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

数据

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]))$

标签: pythonregex

解决方案


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

由于您不想匹配空格,您可以添加\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]))$
       ^^       ^^                                ^^  

正则表达式演示


推荐阅读