2014-09-05 26 views
0

我有這個字符串:的數字和字母,但不僅是數字的正則表達式

S3UPLOAD:Uploading file: /var/mobile/Applications/999445D0-5B4D-4078-9B81-4F65D3474971/Documents/2014-08-25 Driving 22.58.39/2014-08-25 Driving 22.58.39.vmd.zip 783:00 

我想找到一個正則表達式將匹配像S3UPLOAD:但不是唯一的783:子。 子字符串可能只包含大寫字母和數字或大寫字母,而不包含數字。

試過這個exp。

/[A-Z][A-Z0-9]+:/ 

但它效率不高,因爲它也會匹配783:子串。

+1

確定的正則表達式'[A-Z] [A-Z0-9] +:''匹配783:'? – 2014-09-05 11:30:57

回答

1

你可以試試下面的正則表達式來匹配只包含大寫字母和數字或大寫字母的子字符串,而不是隻包含數字。

[A-Z0-9]*[A-Z][0-9][A-Z0-9]*:|[A-Z]+: 

DEMO

>>> import re 
>>> s = "S3UPLOAD:Uploading file: /var/mobile/Applications/999445D0-5B4D-4078-9B81-4F65D3474971/Documents/2014-08-25 Driving 22.58.39/2014-08-25 Driving 22.58.39.vmd.zip 783:00" 
>>> m = re.search(r'[A-Z0-9]*[A-Z][0-9][A-Z0-9]*:|[A-Z]+:', s).group() 
>>> m 
'S3UPLOAD:' 
0

像這樣的事情

/([A-Z]*[0-9]*[A-Z]+)+/ 
1

只包括大寫字母,以及與數字混合。但必須包含一個資本。

[A-Z0-9]*[A-Z][A-Z0-9]*:

相關問題