gpt4 book ai didi

python - 冒号出现后需要表达式不匹配

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:33 24 4
gpt4 key购买 nike

所以我有一个名字列表,想过滤掉格式正确的名字。作为引用,我需要的格式是 IP::hostname。这是我目前拥有的正则表达式公式:

^\d+(\.|\:)\d+\.\d+\.\d+::.+\w$

但是,我需要修改它,以便如果主机名中或之后有任何冒号 (:),则它与表达式不匹配:

这匹配正确的是:

10.179.12.241::CALMGTVCSRM0210

这匹配但不应该:

10.179.12.241::CALMGTVCSRM0210:as

任何关于如何修改我的表达式以不匹配主机名后的任何冒号的帮助将不胜感激

最佳答案

.+ pattern 匹配除换行符以外的 1 个或多个字符,尽可能多,因此匹配允许它们的冒号。你需要一个 negated character class , [^:]* , 这将匹配除冒号以外的 0+ 个字符。

您可以使用

修复您的正则表达式(并增强一点)
^\d+[.:]\d+\.\d+\.\d+::[^:]*\w$
^^^^^

参见 regex demo

为确保您想要匹配您宁愿使用的有效 IP

^(?: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}::[^:]*\w$

参见 another regex demo (IP regex source)。 (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)匹配来自 0 的单个八位字节至 255(?:\.<octet_pattern>){3}匹配三个重复的点和八位字节模式。

关于python - 冒号出现后需要表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54558423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com