我有一个文本字符串,如下所示:
text = "907525191737280e , hjjhkj789jkh 2554nagy289 2 8 2 2 7 5 2 working welcome , a dp83640as25 , dp83867 e2 e25"
我尝试使用以下正则表达式(from:regex for alphanumeric only is not working)仅识别字母数字单词
并将其更改为:^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]*
但是我没有得到我想要的结果,我也尝试了[a-zA-Z0-9]+
但是也失败了
期望输出:
907525191737280e hjjhkj789jkh 2554nagy289 dp83640as25 dp83867 e2 e25
我对regex还不熟悉,正在努力学习。你能帮我一下吗?我错过了什么
如果您只需要包含至少一个数字字符和至少一个字母字符的所有单词,可以通过以下方式使用
import string
而不是import re
来完成:请注意,此解决方案类似于您仅将ASCII字母识别为字母的模式。记住
re
是一个有用的模块,但是有些任务更容易用另一种方式完成一个选项是使用前瞻检查一个数字,并至少匹配一个字符a-zA-Z
您不需要锚定
^
,因为它断言字符串的开头。您可以使用单词bounary\b
来确保匹配项不是较大单词的一部分部分地
\b
字边界(?=[a-zA-Z0-9]*[0-9])
正向前瞻,断言一个数字[a-zA-Z0-9]*[a-zA-Z][a-zA-Z0-9]*
在所有允许的字符之间匹配字符a-zA-Z\b
字边界Regex demo
只是说-不需要正则表达式,真的:
这就产生了
如果需要,添加其他条件(例如长度):
这将产生
相关问题 更多 >
编程相关推荐