我有(数千)个csv文件,其中包含(数十亿)行,例如:
在组合框.csv在
example0@domain.tld:passw0rd
ex.a.m-pl_e1@domain.tld;p@££w0r46&
0-0-0 ex.a.m-pl_e1@domain.tld p@££w0r46&
ex.a.m-pl_e1@domain.tld:00-00-00;p@££w0r46& <-- updated line
00-00-00:username:password
username:p@££w0r46&
username p@££w0r46&
and more...
我正在尝试提取一些机器学习作业的电子邮件或用户名和密码。但我似乎无法确定正确的正则表达式。在
使用re.split
、re.findall
或{
从上面combos.csv
我已经成功地使用了以下电子邮件/密码组合:
re.compile(r'(?:.*[:|;])?(?P<email>[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)[:|;](?P<Password>.*)')
但提取用户名/密码我还没处理好。我尝试过look behind on;and:但似乎当行被分隔两次时,我当前的regex将返回第一列作为username,第二列作为password:
re.compile(r'^(?:.*[:|;])?(?P<username>[A-z0-9\.\-\_\$\#\&]+)(?!@)[:|;](?P<password>.*)')
我怎样才能做到这一点,更好的是,有没有一个解决方案,一个正则表达式可以做一切?在
欢迎任何帮助!在
这样的怎么样:
产生:
^{pr2}$如果您计划从每行中提取电子邮件、密码和可选用户名数据,您可以使用这些数据
见this Python demo。在
^\S+@\S+\.\S+$
模式匹配类似电子邮件的字段,这些字段以1+非空白字符开头,然后有@
,同样是1+非空白字符。并以1+非空白字符结尾。在与}一起使用。在
re.split
一起使用的[:; ]
模式与;
和{相关问题 更多 >
编程相关推荐