python - Python - 不以点开头或结尾的正则表达式 Ip
问题描述
我有一个找到 ip 的正则表达式:
'[0-9]+(?:\.[0-9]+){3}'
现在,如果 Ip 以点开头或结尾,我需要使其失败。例如,这些将失败:
- .1.1.1.1
- 1.1.1.1.
- 1.1.1.1.1
- 1.11.1.1.1
解决方案
试试这个正则表达式:
(?<!\.)(?:[0-9]+(?:\.[0-9]+){3})(?!\.)
解释:
(?<!\.)
- 负向后看,以确保您的 IP 模式前面没有.
(?:[0-9]+(?:\.[0-9]+){3})
- 和你的模式一样(?!\.)
- 负前瞻以确保您的 IP 模式后面没有.
另外,请注意,如果需要,还可以改进 IP 模式。
更新
根据您的评论,这是更新的正则表达式(我刚刚添加了单词边界以涵盖您提供的情况):
推荐阅读
- java - 运行 SampleApp 消息连接超时错误
- javascript - 将日期作为字符串传递给后端和服务器
- haskell - 将.hs文件作为脚本运行时如何导入相邻模块
- python - OpenCV 检测具有多个边界框的单个符号
- azure - 多个 LEFT JOINS 在 Azure 流分析中未按预期工作
- python - 时间序列:如何在包含星期六的情况下调整 pd.date_range(freq='B')。(Python)
- ios - UITabBarController 未正确初始化选项卡视图控制器
- pytorch - 输入张量未在 pytorch 中移动到 GPU
- java - 具有在其回调中使用具体类的侦听器的抽象 Java 类
- java - 使用 for 循环从列表中删除电影。For循环工作一次然后抛出索引超出范围异常