2017-09-28 28 views
-1

如何使用正則表達式在兩種字母和數字混合的文本中查找字符串?例如:使用數字和字母檢測字符串

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] 

回答

1

,只有用數字和字母輸入相匹配的正則表達式是:

^(?=.*\d)(?=.*[a-zA-Z]).+ 

這使用2個向前看,每個需要的字符類型。

使用前瞻使得添加更多的需求變得簡單;你可以根據需要添加更多。

+0

我會把'\ w'代替。如果你只想匹配連續的單詞,儘管從OP不清楚。 – kaza

相關問題