将代理拆分为 IP:PORT:USER:PASS (Python)

问题描述

所以我的代理文件看起来像这样:

{ "title": "stremnaya-arka","path": "/catalog/outdoor/arcs/stremnaya-arka","name": "Стрёмная арка","type": "arcs",} 209.127.191.180:9279:oexuirhs-dest:8rmd80fjmtmj 45.95.96.132:8691:oexuirhs-dest:8rmd80fjmtmj 193.8.56.119:9183:oexuirhs-dest:8rmd80fjmtmj 45.95.99.226:7786:oexuirhs-dest:8rmd80fjmtmj

我想将其拆分为 IP:PORT:USER:PASS 我想过使用 REGEX 但我想不通我希望它是一个我以后可以使用的变量,例如:

IP = 端口 = 用户 = 通过 =

这当然是假设代理和用户名/密码每次都不同 感谢阅读本文。

解决方法

这是一个可能的解决方案:

(?<ip>((?<ipblock>[0-9]{1,3})\.){3}(?&ipblock)):(?<port>[0-9]+):(?<username>[a-z\-]+):(?<password>[a-zA-Z0-9]+)

此正则表达式包含每个信息的捕获组。

IP:(?<ip>((?<ipblock>[0-9]{1,3})\.){3}(?&ipblock))

IP Matchgroup 解释:

(?<ip>                <-- the named group
  (
    (?<ipblock>{1,3}) <-- matches numbers 0 - 999
    \.                <-- ip dot
  ){3}                <-- repeats the whole group three times
  (?&ipblock)         <-- reuses the ipblock match group because of the dot
)

端口:(?<port>[0-9]+)

用户名:(?<username>[a-z\-]+)

密码:(?<password>[a-zA-Z0-9]+)

用户名和密码非常基本,您可能需要对其进行扩展。

您可以在这里测试您的正则表达式:https://regex101.com/

这个例子:https://regex101.com/r/heWm1i/1

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...