数字和字母的正则表达式,但不仅仅是数字

时间:2014-09-05 10:52:37

标签: python regex

我有这个字符串:

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:子串。

3 个答案:

答案 0 :(得分: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:'

答案 1 :(得分:1)

仅包含大写字母,并与数字混合。但必须包含资本。

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

答案 2 :(得分:0)

像这样的东西

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