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中不清楚。