javascript - 排除特定 ip 模式的正则表达式
问题描述
我正在通过正则表达式过滤特定的 IP 地址。例如,应排除最后一个八位字节中包含 1 的所有 IP 地址,即 XXX.XXX.XXX.1,但不能排除 11 或 123 或 125。示例:
正则表达式应丢弃
192.168.1.1
192.168.20.1
192.168.30.1
但不应丢弃
192.168.1.101
192.168.20.103
我已将正则表达式尝试为 :
^(?!\d{1,3}\.\d{1,3}\.\d{1,3}\.[^\1]).*$
但无法按预期排除。
任何帮助表示赞赏!
解决方案
当匹配最后一个八位字节时,使用(?:1\d+|[02-9]\d*)$
- 匹配一个 1 后跟其他数字,或者匹配不是1 的东西,可能后跟其他数字:
^\d{1,3}(?:\.\d{1,3}){2}\.(?:1\d+|[02-9]\d{0,2})$
https://regex101.com/r/gB5c6z/1
另一种选择,负前瞻:
推荐阅读
- ios - 隐藏 UICollectionViewCell 拖动预览
- python - 使用 pyqt5 制作简单的聊天机器人,无需按钮
- python - __init__ 调用要修改的函数时如何进行子类化
- c# - 语音识别语法的 InvalidOperationException
- sql - SQL迁移——将数据移动到另一个表并获取主键
- reactjs - 尝试迭代 Object 时出现意外令牌
- java - 针对目录遍历进行测试
- azure - Azure 如何通过 VNET 内的私有 IP 调用内部 API 管理服务
- flutter - 颤振/飞镖/ NoSuchMethodError
- html - 在页面上将徽标居中并将它们放在这个 3x2 网格中?