首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中验证代理uri的Regex

在python中验证代理uri的Regex
EN

Stack Overflow用户
提问于 2019-11-12 09:15:16
回答 1查看 402关注 0票数 1

我尝试了一个regex来验证下面有效的和无效的代理URI。在验证python中的有效和无效场景方面,我需要帮助。

输入应以这种方式进行:

代码语言:javascript
运行
复制
000.0000.00.00                               #invalid
912.456.123.123                               #invalid
999.999.999.999:99999                         #invalid
192.168.1.1                                   #valid
192.168.1.1.1                                 #invalid
proxy.company.com:3128                        #valid
https://proxy.company.com:3128                #valid
https://proxy.company.com:3128/?action=list   #valid
user:pass@proxy.company.com:3128              #valid
localhost:8000                                #valid
http://localhost:8000                         #valid
3...3                                         #invalid

我的审判官:

代码语言:javascript
运行
复制
(^(\w+)(?::)+((\w+))@)|(^https?:\/\/)|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(?:\.[^0-9])|(localhost)(?::(?![7-9]\d\d\d\d)(?!6[6-9]\d\d\d)(?!65[6-9]\d\d)(?!655[4-9]\d)(?!6553[6-9])(?!0+)(?P<Port>\d{1,5}))?(?:\/?|[\/?]\S+)$

这些案件是有效的:

代码语言:javascript
运行
复制
3...3
192.168.1.1.1

我需要帮助对它进行全面的校对。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-12 19:11:56

要匹配示例数据,一种解决方案可以是匹配ip号,或者匹配类似url的结构,或者使用@匹配结构。

代码语言:javascript
运行
复制
^(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:https?://)?(?![\d.]+:)\w+(?:\.\w+)*:\d+\S+|\w+:\w+@(?![\d.]+:)\w+(?:\.\w+)*:\d+)$

大部分(你可以相应地调整它们)

  • 字符串的^开始
  • (?:非捕获群
    • (?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)模式到匹配ip号码
    • |
    • (?:https?://)?(?![\d.]+:)\w+(?:\.\w+)*:\d+\S+匹配一个url样模式,该模式不能仅由冒号前的数字和点组成。
    • |
    • \w+:\w+@(?![\d.]+:)\w+(?:\.\w+)*:\d+匹配用户名和密码的模式,后面是@

  • )闭非捕获群
  • 字符串的$末端

Regex演示

注意到,这种模式不能保证完全校对,因为您的示例包含各种各样可能的变体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58815427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档