2014-09-05 60 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]*:

相关问题