问题描述
我正在尝试从文本中提取长度大于 8 的数字/字母数字字符的标记/部分标记。
示例:
text = 'https://stackoverflow.com/questions/59800512/ 510557XXXXXX2302 Normal words 1601371803 NhLw6NlR0EksRWkLddEo7NiEvrg https://www.google.com/search?q=some+google+search&oq=some+google+search&aqs=chrome..69i57j0i22i30l8j0i390.4672j0j7&sourceid=chrome&ie=UTF-8'
预期的输出是:
59800512 510557XXXXXX2302 1601371803 NhLw6NlR0EksRWkLddEo7NiEvrg 69i57j0i22i30l8j0i390 4672j0j7
我尝试使用正则表达式:((\d+)|([A-Za-z]+\d)[\dA-Za-z]*)
基于答案 Python Alphanumeric Regex。我得到了以下结果:
[match for match in re.findall(r"((\d+)|([A-Za-z]+\d)[\dA-Za-z]*)",text)]
Output :
[('59800512','59800512',''),('510557','510557',('XXXXXX2302','','XXXXXX2'),('1601371803','1601371803',('NhLw6NlR0EksRWkLddEo7NiEvrg','NhLw6'),('69','69',('i57j0i22i30l8j0i390','i5'),('4672','4672',('j0j7','j0'),('8','8','')]
对于每个匹配的标记,我都会得到一个匹配组的元组。
可以再次过滤这些元组。但我正在努力使代码尽可能高效和 Pythonic。
有人可以提出解决方案吗?它不需要基于正则表达式。
提前致谢
编辑: 我期望长度等于或大于 8 的字母数字值
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)