如何使用正则从字符串中匹配合法URL路径与IP地址
正则匹配方案
最终可用正则
全量校验版本(仅验证字符串是否符合规则)
^\/[^ ]+ (?:[0-9]{1,3}\.){3}[0-9]{1,3}$
分组捕获版本(可同时提取路径和IP)
^(\/[^ ]+) ((?:[0-9]{1,3}\.){3}[0-9]{1,3})$
规则说明
- 路径匹配部分
\/[^ ]+:\/匹配开头的斜杠,[^ ]+匹配1个及以上非空格字符,完全满足「以/开头、不含空格、兼容特殊符号」的要求 - 中间的单个空格匹配路径和IP的分隔符,如果存在多空格分隔的场景,可将空格替换为
+ - IP匹配部分直接复用你提供的现有规则,仅移除了原正则开头的
^锚点(IP不再从字符串起始位置匹配),末尾新增$锚点确保字符串没有多余后缀内容
验证效果
- 合法示例
/some/page_path 255.122.212.211可完全匹配,分组捕获版本可分别拿到路径/some/page_path和IP255.122.212.211 - 非法示例
/some/page _path 2525.122.212 yada yada匹配失败:路径包含空格、IP格式不符合要求、存在多余后缀的问题都可被拦截
内容的提问来源于stack exchange,提问作者Mr.Code
相关产品推荐
相关产品推荐

