Regex 检测带有数字和字母的字符串

Regex 检测带有数字和字母的字符串,regex,python-3.x,Regex,Python 3.x,如何使用正则表达式在混合了字母和数字的文本中查找字符串?例如: ca199220 b2ad 45e1 00D61000000ZPjx 我要查找的字符串并不总是相同的长度,可能以字母的任意数字开头,并且在其中分散有数字和字母 为了澄清,我想用一根绳子 test = 'yay over here ca19922 i have some 00D61000000ZPjx' re.sub(r'insert some regex', '', test) #return test = 'yay over h

如何使用正则表达式在混合了字母和数字的文本中查找字符串?例如:

ca199220
b2ad
45e1
00D61000000ZPjx
我要查找的字符串并不总是相同的长度,可能以字母的任意数字开头,并且在其中分散有数字和字母

为了澄清,我想用一根绳子

test = 'yay over here ca19922 i have some 00D61000000ZPjx'
re.sub(r'insert some regex', '', test)
#return test = 'yay over here i have some'
我的解决办法是:

import re
import nltk
[re.sub(r'^(?=.*\d)(?=.*[a-zA-Z])\w+', '', w) for w in nltk.word_tokenize(test) if len(re.sub(r'^(?=.*\d)(?=.*[a-zA-Z])\w+', '', w))>0]

仅与数字和字母输入匹配的正则表达式是:

^(?=.*\d)(?=.*[a-zA-Z]).+
这将使用2个look ahead,每个所需类型的字符对应一个


使用look aheads可以轻松添加更多需求;你可以根据需要添加更多的代码。

我会用
\w
代替。如果只想匹配continuos单词,尽管OP中不清楚。