任何人都可以帮助我从所有组值中获取特定的组值。
在下面给出的字符串中,我必须获取特定的IP,如第一个IP或第二个IP或第三个IP。现在我写了正则表达式以匹配IP值,但它没有给我具体的。
示例字符串:
management:10.103.2.1/52488 (10.105.1.50/52488) to a Identity b:10.105.1.53/443 (10.105.1.53/443)
My Regex:
\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
通过应用此IP地址选择所有的IP地址,而我想在字符串中选择特定的IP地址(字符串中的第一个ip地址或字符串中的第二个ip地址等)
答案 0 :(得分:1)
如果您拒绝使用在软件中多次调用find
的简单逻辑,您可以找到n
出现的模式p
但是应用在不情愿匹配任意文本n
之前的模式中(?:.*?p){n}
次,其中n
是所需的nimber和p
模式。所以在你的情况下,模式是:
(?:.*?\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}
找到第三个IP地址。您已定义的四个组将包含最后一次匹配的四个十进制数,在成功find
操作后读取第三个IP地址。当然,如果您想要对整个地址使用完整的String
,则可以将您的四个组与另一个组一起包含在内。那就是小组1
。